Как записать аудиовыход через веб / браузер (не через микрофон) - PullRequest
1 голос
/ 15 апреля 2019

Кто-нибудь успешно смог получить доступ к аудиопотоку, который выводится из окна браузера (не из микрофона)?

В настоящее время мы создаем приложение студии звукозаписи, где пользователь может играть на инструменте имы хотим иметь возможность записывать и сохранять это аудио по мере его создания.У нас есть звуковой вывод в реальном времени, генерируемый локально сохраненными mp3-файлами (т.е. при нажатии клавиш пианино), но у нас нет способа захватить эту последовательность аудиопотока, чтобы сохранить ее.

1 Ответ

0 голосов
/ 16 апреля 2019

Я полагаю, вы используете API Web Audio для этого проекта.

Сначала необходимо создать MediaStreamAudioDestinationNode . Это узел Web Audio, к которому вы можете подключить оставшуюся часть графика и вывести его на MediaStream, который можно записать.

const mediaStreamDestination = audioContext.createMediaStreamDestination();

someOtherNode.connect(mediaStreamDestination);

Затем вам понадобится MediaRecorder, который будет принимать необработанный звук PCM, когда MediaStream его производит, и кодировать его с помощью желаемого кодека.

const mediaRecorder = new MediaRecorder(mediaStreamDestination.stream);

mediaRecorder.addEventListener('dataavailable', (e) => {
  // Recorded data is in `e.data`
});

mediaREcorder.start();

Обратите внимание, что этот пример MediaRecorder точно такой же, независимо от того, получен ли ваш MediaStream из getUserMedia или из графа API Web Audio.

Полный пример здесь: https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode

...