关于createMediaStreamSource,属性“stream”来自哪里?

时间:2015-08-02 09:11:26

标签: javascript web-audio

W3.org有以下示例: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html

<canvas id="c"></canvas>
<script>
    navigator.getUserMedia('audio', gotAudio);
    var streamRecorder;
    function gotAudio(stream) {
        var microphone = context.createMediaStreamSource(stream);
        var analyser = context.createAnalyser();
        microphone.connect(analyser);
        analyser.connect(context.destination);
        requestAnimationFrame(drawAnimation);

        streamRecorder = stream.record();
        peerConnection.addStream(stream);
    }
</script>

什么是“流”?这个属性来自哪里?当它被放置的时候会发生什么?我不明白它是如何定义的。

1 个答案:

答案 0 :(得分:1)

navigator.getUserMedia('audio',gotAudio); getUserMedia提示用户允许使用一个视频和/或一个音频输入设备,如摄像头或屏幕共享和/或麦克风。

在您的情况下,您正在请求音频权限。如果getUserMedia调用成功,那么将使用名称“gotAudio”调用一个函数,它将带来该流。

因此,一旦您成功访问音频,您就可以使用麦克风或任何其他音频相关设备。

在gotAudio函数中,代码使用麦克风记录音频流。

您也可以使用故障回拨: navigator.getUserMedia(constraints,successCallback,errorCallback);