我正在学习html5并希望尝试在扬声器上播放我在麦克风上说的内容。所以我写了以下js代码:
navigator.getUserMedia = navigator.getUserMedia ||navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
var aCtx;
var analyser;
var microphone;
if (navigator.getUserMedia) {
navigator.getUserMedia(
{audio: true},
function(stream) {
aCtx = new AudioContext();
analyser = aCtx.createAnalyser();
microphone = aCtx.createMediaStreamSource(stream);
microphone.connect(analyser);
var destination=aCtx.destination;
analyser.connect(destination);
},
function(){ console.log("Error 003.")}
);
}
我在firefox 47和ubuntu 14上测试它。我看到面板分享我的麦克风,我选择分享,什么也没发现。如何解决?
修改 但是,它适用于windows7中的firefox 47。但在ubuntu我安装了所有驱动程序,我使用skype,youtube等除了这个js脚本之外一切正常。
答案 0 :(得分:1)
答案 1 :(得分:0)
它适用于我的firefox和chrome(我在Macbook Pro OSX 10.11上)
https://jsfiddle.net/greggman/g88v7p8c/
注意它不能在stackoverflow上运行,因为使用麦克风需要HTTPS(至少在Chrome上,没有检查Firefox)。如果页面不是HTTPS,那么我得到
getUserMedia()
不再适用于不安全的起源。要使用此功能,您应该考虑将应用程序切换到安全的来源,例如HTTPS。有关详细信息,请参阅httpsgoo.gl/rStTGz。
stupid stackoverflow不会让我发布chrome的实际消息,因为stackoverflow禁止goo.gl