我有一个远程MediaStream
获得的远程 WebRTC Peer Connection
对象。
我想检查远程 MediaStream
何时变为无效(由于原因而无关)。
我已经读过,为此我应该使用active
对象的事件inactive
和MediaStream
。
但是这两个事件永远不会被触发:即使我为这两个事件设置了一个特定的处理程序,处理程序也永远不会被执行。
这是我的实施:
function onRemoteStream(event) {
event.stream.addEventListener("active", function(){
console.log('The video is active');
}, false);
event.stream.addEventListener("inactive", function(){
console.log('The video is not active');
}, false);
remoteVideo.src = window.URL.createObjectURL(event.stream);
}
这两条消息从未显示过。
我也尝试过:
function onRemoteStream(event) {
event.stream.onactive = function(){
console.log('The video is active');
};
event.stream.oninactive = function(){
console.log('The video is not active');
}
remoteVideo.src = window.URL.createObjectURL(event.stream);
}
但行为是一样的。
我不明白为什么不会触发这两个事件。
我使用的是Google Chrome 52.0.2743.116 m
答案 0 :(得分:1)
不能正常工作,只是你无法直接为该事件编写函数(根据现在删除的文档)。您还可以在控制台中记录event.stream
对象并查看详细信息。您必须调用预定义函数,并且可以根据需要传递任意数量的参数。
我已经制作了一个快速代码来测试如何触发这些事件。
<强> HTML 强>
<video src="" autoplay id="video"></video>
<强>的JavaScript 强>
var video = document.getElementById('video')
function myfun() {
console.log("on active event");
}
navigator.getUserMedia({video:true, audio:false}, function (stream) {
stream.onactive = myfun();
video.src = window.URL.createObjectURL(stream);
}, function (error) {
console.log(error);
})