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

Where does the property "stream" come from in regards to createMediaStreamSource?

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>

什么是"stream"?这个 属性 是从哪里来的?当它像这样放置时会发生什么?我不明白它是怎么定义的。

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

在您的情况下,您请求的是音频权限。如果 getUserMedia 调用成功,那么将调用一个名为 "gotAudio" 的函数,它会带来流。

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

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

您还可以使用失败回调: navigator.getUserMedia(约束、successCallback、errorCallback);