【发布时间】:2017-01-25 05:27:02
【问题描述】:
在this document中,它使用URL.createObjectURL来设置视频源。 (这是接听电话的代码)。
var offer = getOfferFromFriend();
navigator.getUserMedia({video: true}, function(stream) {
pc.onaddstream = e => video.src = URL.createObjectURL(e.stream);
pc.addStream(stream);
pc.setRemoteDescription(new RTCSessionDescription(offer), function() {
pc.createAnswer(function(answer) {
pc.setLocalDescription(answer, function() {
// send the answer to a server to be forwarded back to the caller (you)
}, error);
}, error);
}, error);
});
我希望 video.src 是检索远程视频的地址。所以它应该由连接的另一端(发起呼叫的人)修复并给出。但是URL.createObjectURL 的值是在应答端生成的,它的事件取决于函数何时被调用。如何使用它来获取远程视频流?
编辑:
URL.createObjectURL 的结果看起来像 blob:http://some.site.com/xxxx-the-token-xxxx。有了这个字符串,视频组件如何知道在哪里加载远程流? {url:stream} 的哈希图是否存储在某处?如果是这样,视频组件如何访问哈希图?
流对象确实存储了一个令牌字符串,您可以使用stream.toURL 获得它。但它与URL.createObjectURL 的结果不同。 URL.createObjectURL 的值取决于时间。如果连续调用两次,会得到不同的值。
【问题讨论】:
标签: webrtc