我一直在玩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网址,代码突然开始工作。
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。
我有一个输入设备和两个输出设备(扬声器,耳机)。每台设备使用相同的采样率。
答案 0 :(得分:0)
这个问题已经有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);
});