我一直在玩弄 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/