是否有人能够成功访问从浏览器窗口(而不是麦克风)输出的音频流?
我们目前正在构建一个录音棚应用程序,用户可以在其中演奏乐器,并且希望能够在生成音频时对其进行记录和保存。我们具有由本地保存的mp3文件(即按钢琴键)生成的实时音频输出,但是无法捕获此音频流序列进行保存。
答案 0 :(得分:0)
我假设您正在为此项目使用Web Audio API。
首先,您需要创建一个MediaStreamAudioDestinationNode。这是一个Web Audio节点,您可以将图形的其余部分连接到该节点,并将其输出到可以记录的MediaStream。
const mediaStreamDestination = audioContext.createMediaStreamDestination();
someOtherNode.connect(mediaStreamDestination);
接下来,您需要一个MediaRecorder,它将在MediaStream产生原始PCM音频时将其获取,并使用所需的编解码器对其进行编码。
const mediaRecorder = new MediaRecorder(mediaStreamDestination.stream);
mediaRecorder.addEventListener('dataavailable', (e) => {
// Recorded data is in `e.data`
});
mediaREcorder.start();
请注意,无论您的MediaStream是从getUserMedia还是从Web Audio API图获取,此MediaRecorder示例都是完全相同的。
此处的完整示例:https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode