如果我们需要为流创建URL,为什么我们可以将video.src设置为流为WebRTC?

Chi*_*hiu 3 javascript webrtc

在Google的WebRTC教程中,它具有以下示例代码.

我有两个问题:

  1. 为什么我们需要将window.stream设置为?(" 可用于控制台的流 "是什么意思?)
  2. 如果我们需要为创建一个URL ,为什么我们可以将video.src设置 为stream,这应该是一个blob?

谢谢.

function successCallback(stream) {
  window.stream = stream; // stream available to console
  if (window.URL) {
    video.src = window.URL.createObjectURL(stream);
  } else {
    video.src = stream;
  }
}
Run Code Online (Sandbox Code Playgroud)

jib*_*jib 11

旧有错误的代码.video.src = stream是错的.它应该是video.srcObject = stream.它只是从来没有运行,因为所有的浏览器都支持URL.

相反,srcObject只要可用(Chrome和Firefox都支持),浏览器可以更好地处理生命周期:

if (typeof video.srcObject == "object") {
  video.srcObject = stream;
} else {
  video.src = URL.createObjectURL(stream);
}
Run Code Online (Sandbox Code Playgroud)

或者使用adapter.js而不用担心:

video.srcObject = stream;
Run Code Online (Sandbox Code Playgroud)

哦,window.stream这只是一些全局变量.可能由样本作者用于调试.

2013年是WebRTC代码的旧版本.我建议改为查看官方WebRTC样本.