HTML5:在Ubuntu上播放来自麦克风的扬声器流

时间:2016-07-09 08:41:25

标签: javascript linux html5 ubuntu firefox

我正在学习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脚本之外一切正常。

2 个答案:

答案 0 :(得分:1)

我发现了问题。有一些additional设置:CubebUtils enter image description here

答案 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