如果我们需要为流创建一个URL,为什么我们可以为WebRTC设置video.src流?
If we need to create a URL for stream, why can we set video.src to stream for WebRTC?
在Google的WebRTC tutorial中,有如下示例代码。
我有两个问题:
- 为什么我们需要将window.stream设置为stream? (什么是
“流可用于控制台”是什么意思?)
- 如果我们需要为流创建一个URL,为什么我们可以设置video.src
流式传输哪个应该是 blob?
谢谢。
function successCallback(stream) {
window.stream = stream; // stream available to console
if (window.URL) {
video.src = window.URL.createObjectURL(stream);
} else {
video.src = stream;
}
}
旧的错误代码。 video.src = stream
是错误的。应该是video.srcObject = stream
。它永远不会运行,因为今天所有的浏览器都支持 URL
.
而是尽可能使用 srcObject
(在 Chrome 和 Firefox 中均受支持),以便浏览器更好地处理生命周期:
if (typeof video.srcObject == "object") {
video.srcObject = stream;
} else {
video.src = URL.createObjectURL(stream);
}
或者使用adapter.js,不用担心:
video.srcObject = stream;
哦,window.stream
只是一些全局变量。示例作者可能用于调试。
2013 年对于 WebRTC 代码来说是旧的。我建议改为查看官方 WebRTC samples。
在Google的WebRTC tutorial中,有如下示例代码。
我有两个问题:
- 为什么我们需要将window.stream设置为stream? (什么是 “流可用于控制台”是什么意思?)
- 如果我们需要为流创建一个URL,为什么我们可以设置video.src 流式传输哪个应该是 blob?
谢谢。
function successCallback(stream) {
window.stream = stream; // stream available to console
if (window.URL) {
video.src = window.URL.createObjectURL(stream);
} else {
video.src = stream;
}
}
旧的错误代码。 video.src = stream
是错误的。应该是video.srcObject = stream
。它永远不会运行,因为今天所有的浏览器都支持 URL
.
而是尽可能使用 srcObject
(在 Chrome 和 Firefox 中均受支持),以便浏览器更好地处理生命周期:
if (typeof video.srcObject == "object") {
video.srcObject = stream;
} else {
video.src = URL.createObjectURL(stream);
}
或者使用adapter.js,不用担心:
video.srcObject = stream;
哦,window.stream
只是一些全局变量。示例作者可能用于调试。
2013 年对于 WebRTC 代码来说是旧的。我建议改为查看官方 WebRTC samples。