AudioElementMediaStream to MediaStreamSource
WebAudioApi AudioContext может создать источник из MediaStreamSource:
const {audioCtx} = this;
const source = audioCtx.createMediaStreamSource(mediaStream);
source.connect(audioCtx.destination);
source.start(audioCtx.currentTime);
Аудио-элемент поддерживает доступный mediaStream с помощью captureStream ():
const audio = new Audio();
audio.src = src;
const mediaStream = audio.captureStream();
Как вы можете видеть в документах, оба потока - аудиозахваченный поток, а также параметр потока для createAudioStreamSource - MediaStreams, почему он не работает. Где проблема, как я могу это исправить?
Редактировать:
Проблема в том, что броузер выдает эту ошибку:
× Необработанный отказ (InvalidStateError): не удалось выполнить "createMediaStreamSource" для "BaseAudioContext": MediaStream не имеет звуковой дорожки
1 ответ
Вы прикрепили свой 'src' к своему аудиоэлементу, но не проверяли, полностью ли загружен контент с сервера, прежде чем действовать на нем. Вы не можете захватить поток, если он еще не завершил загрузку в браузер, например, если вы не можете отобразить источник изображения, пока он полностью не появится в браузере. Любой процесс против источника вы должны будете поместить в обработчик загрузки. (И вы можете использовать <source>
элемент в вашем <audio>
элемент вместо.)