javascript - 无法使用 MediaStreamAudioSourceNode 在 Google Chrome 中播放声音

标签 javascript google-chrome webrtc

我一直在玩弄 WebRTC,但在正确授予浏览器使用输入设备的权限后,我完全无法播放简单的音频流。

我只是尝试将输入设备连接到上下文目标,但它不起作用。

此代码段不起作用,但我认为它应该:

function success(stream)
{
    var audioContext      = new webkitAudioContext();
    var mediaStreamSource = audioContext.createMediaStreamSource(stream);

    mediaStreamSource.connect(audioContext.destination);
}

navigator.webkitGetUserMedia({audio:true, video:false}, success);

这似乎没有从我的工作麦克风捕获任何声音,但如果我使用一个简单的标签并创建一个 blob url,代码就会突然开始工作。

function success(stream)
{
    audio = document.querySelector('audio');
    audio.src = window.URL.createObjectURL(stream);
    audio.play();
}

navigator.webkitGetUserMedia({audio:true, video:false}, success);

此外,这些演示似乎都不适合我:http://webaudiodemos.appspot.com/ .

拨弄第一个片段:http://jsfiddle.net/AvMtt/

拨弄第二个片段:http://jsfiddle.net/vxeDg/

在 Windows 7x64 上使用 Chrome 28.0.1500.71 beta-m。

我有一个输入设备和两个输出设备(扬声器、耳机)。每个设备都使用相同的采样率。

最佳答案

这个问题已经有近 6 年历史了,但对于任何偶然发现这个问题的人来说,这个问题的现代版本看起来是这样的:

function success(stream) {
    let audioContext = new AudioContext();
    let mediaStreamSource = audioContext.createMediaStreamSource(stream);
    mediaStreamSource.connect(audioContext.destination);
}

navigator.mediaDevices.getUserMedia({audio: true, video: false})
.then(success)
.catch((e) => {
    console.dir(e);
});

并且似乎基于 https://jsfiddle.net/jmcker/g3j1yo85 工作

关于javascript - 无法使用 MediaStreamAudioSourceNode 在 Google Chrome 中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17604675/

相关文章:

javascript - 在后台打开新标签页,将焦点留在当前标签页上 - Chrome

javascript - 尝试调用另一个对等点时出现 PeerJS 错误 : Failed to execute 'addStream' on 'RTCPeerConnection' : parameter 1 is not of type 'MediaStream'

html - Chrome Only Bootstrap + Google Maps Bug

javascript - Vuex 调度不返回 View 中的数据

c# - 如何从 C# 用户控件中的 jquery 检索值?

javascript - 如何只添加每行中选定的值并到达点的末尾,停止添加

html - 网格布局在 Firefox 中被破坏,但在 Chrome 中却没有

javascript - 是否可以将原始 UDP 数据包直接从浏览器发送到 ip/端口?

android - android 的音频 pubnub webrtc 中的问题

javascript - 如何将一维整数数组从 QML 发送到 C++?