Как получить значение системного звука через JS?

Для получения значения системного звука через JavaScript не существует стандартного API. Однако, вы можете использовать некоторые хитрости и альтернативные подходы для достижения этой цели.

1. Web Audio API:
Web Audio API предоставляет набор инструментов для работы со звуком в браузере. Вы можете использовать его для получения доступа к текущему уровню громкости системы.

// создаем аудио-контекст
var audioContext = new (window.AudioContext || window.webkitAudioContext)();

// создаем аудио-источник
var audioSource = audioContext.createMediaElementSource(new Audio());

// создаем анализатор
var analyser = audioContext.createAnalyser();

// подключаем аудио-источник к анализатору
audioSource.connect(analyser);

// подключаем анализатор к динамикам устройства
analyser.connect(audioContext.destination);

// получаем данные о громкости
var bufferLength = analyser.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);
analyser.getByteFrequencyData(dataArray);

// вычисляем среднее значение громкости
var volume = 0;
for (var i = 0; i < bufferLength; i++) {
  volume += dataArray[i];
}
volume /= bufferLength;

console.log(volume); // значение громкости

2. HTML5 Audio:
Вы можете использовать HTML5 Audio элемент и следить за его свойствами для получения информации о текущем состоянии звука.

var audio = new Audio();
audio.src = 'path/to/audio';

// следим за свойством volume аудио-элемента
audio.addEventListener('volumechange', function() {
  console.log(audio.volume); // значение громкости
});

// воспроизводим звук
audio.play();

3. MediaDevices API (только для некоторых браузеров):
MediaDevices API позволяет получить поток из аудиовыхода и анализировать его.

var constraints = {
  audio: {
    echoCancellation: false,
    noiseSuppression: false,
    autoGainControl: false,
    deviceId: 'default'
  }
};

navigator.mediaDevices.getUserMedia(constraints)
  .then(function(stream) {
    var audioContext = new (window.AudioContext || window.webkitAudioContext)();

    var source = audioContext.createMediaStreamSource(stream);
    var analyser = audioContext.createAnalyser();

    source.connect(analyser);

    var dataArray = new Uint8Array(analyser.fftSize);

    function updateVolume() {
      analyser.getByteTimeDomainData(dataArray);

      var volume = 0;
      for (var i = 0; i < dataArray.length; i++) {
        volume += dataArray[i];
      }
      volume /= dataArray.length;

      console.log(volume); // значение громкости

      requestAnimationFrame(updateVolume);
    }

    updateVolume();
  })
  .catch(function(error) {
    console.log(error);
  });

4. Использование сторонних библиотек:
Если вам требуется получить значение громкости на всеобщем уровне или для всей системы, вы также можете использовать сторонние библиотеки, такие как SoundMeter.js или Recorder.js, которые предоставляют высокоуровневый интерфейс для работы со звуком в браузере.

В целом, доступ к системному звуку через JavaScript ограничен из соображений безопасности и конфиденциальности, поэтому стандартные инструменты и возможности API для этого ограничены. Однако, вы можете использовать вышеупомянутые подходы для получения доступа к текущему уровню громкости системы.