如何录制网络/浏览器音频输出(不是麦克风音频)
Posted
技术标签:
【中文标题】如何录制网络/浏览器音频输出(不是麦克风音频)【英文标题】:How to record web/browser audio output (not microphone audio) 【发布时间】:2019-04-15 10:15:44 【问题描述】:是否有人成功访问了从浏览器窗口(而不是麦克风)输出的音频流?
我们目前正在构建一个声音工作室应用程序,用户可以在其中演奏乐器,并且我们希望能够在生成音频时录制和保存该音频。我们通过本地保存的 mp3 文件(即按下钢琴键)生成实时音频输出,但无法捕获此音频流序列以保存它。
【问题讨论】:
你可以在这里找到答案***.com/questions/42336604/… 【参考方案1】:我假设您正在为这个项目使用 Web Audio API。
首先,您需要创建一个MediaStreamAudioDestinationNode。这是一个 Web 音频节点,您可以将图形的其余部分连接到该节点,并将其输出到可以记录的 MediaStream。
const mediaStreamDestination = audioContext.createMediaStreamDestination();
yourSourceNode.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 还是来自您的 Web Audio API 图。
此处为完整示例:https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode
【讨论】:
我试图以角度实现这一点。你能解释一下“someOtherNode”到底是什么吗? @NotABotsomeOtherNode
在这种情况下是音频的来源。我已在答案中更新了该节点的名称以澄清。
谢谢。如果我们不知道音频源,有什么方法可以录制音频?就我而言,我使用的是内部输出音频的 3rd 方 SDK。
@NotABot “在内部输出音频”具体是什么意思?哪个 SDK?
音频由我们的黑盒SDK播放。目前我正在考虑为此使用pulseaudio以上是关于如何录制网络/浏览器音频输出(不是麦克风音频)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Windows Phone 的麦克风在网页中录制音频?