HTML5音频录制不工作外部麦克风

时间:2013-07-18 15:38:43

标签: javascript html5 google-chrome webrtc getusermedia

我正在使用getUserMedia来访问Chrome中的用户麦克风(版本28.0.1500.72 m)。当我们使用带内置扬声器的内置麦克风时,我能够录制和播放用户输入。

一旦插入USB麦克风耳机,我就无法再记录用户输入。我已在隐私和内容设置下的Chrome设置中切换了设备。所以chrome确实看到了新插入的麦克风。我重新启动了chrome并在插入麦克风后再次尝试了。仍然没有用户输入。

提前致谢。

以下是我正在使用的当前代码。

    window.AudioContext = window.AudioContext||window.webkitAudioContext;
    var html5Recorder;
    var audioContext = new AudioContext();
    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia;
    if(navigator.getUserMedia){
        navigator.getUserMedia({audio:true},handleAudioStream, audioError)
    }else{
        console.log('Use Flash')
    }

    function handleAudioStream(stream){
        var mediaStream = audioContext.createMediaStreamSource(stream);
        mediaStream.connect( audioContext.destination );
        html5Recorder = new HTML5Recorder(mediaStream);
        html5Recorder.stop();
        html5Recorder.clear();
    }

    function audioError(error){
        console.log(error);
    }

    function record(){
        html5Recorder.record();
    }

    function stopRecording(){
        html5Recorder.stop();
        html5Recorder.exportWAV(function(e){
            console.log(e);
            console.log(window.URL.createObjectURL(e));
           document.getElementById('audio1').src =  window.URL.createObjectURL(e);
            HTML5Recorder.forceDownload(e);
        });
    }

3 个答案:

答案 0 :(得分:1)

这是我正在使用的当前chrome版本中的一个错误(28)。 Chrome金丝雀效果很好。

答案 1 :(得分:0)

你能检查两个音频设备的采样率吗?

如果采样率与默认麦克风相同,则默认情况下非默认麦克风存在错误:https://code.google.com/p/chromium/issues/detail?id=164058

另外,你是OSX还是Linux?错误中的注释使它看起来应该在Windows上修复。

答案 2 :(得分:0)

尝试选择USB麦克风作为默认值。 Chrome无法管理音频设备,它始终使用默认麦克风。