Ale*_*o C 6 html html5-video webrtc mediastream
我有一个由 remote 获得的远程 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);
}
Run Code Online (Sandbox Code Playgroud)
这两条消息永远不会显示。
我也试过:
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);
}
Run Code Online (Sandbox Code Playgroud)
但行为是一样的。
我不明白为什么没有触发这两个事件。
我正在使用谷歌浏览器 52.0.2743.116 m
不,它工作正常,只是您不能直接为该事件编写函数(根据现已删除的文档)。您还可以event.stream
在控制台中记录您的对象并查看详细信息。您必须使用预定义的属性onactive
和oninactive
我编写了一个快速代码来测试如何触发这些事件。
超文本标记语言
<video src="" autoplay id="video"></video>
Run Code Online (Sandbox Code Playgroud)
JavaScript
var video = document.getElementById('video')
function onactive() {
console.log("on active event");
}
function oninactive() {
console.log("on inactive event");
}
navigator.getUserMedia({video:true, audio:false}, function (stream) {
stream.onactive = onactive;
stream.oninactive = oninactive;
video.src = window.URL.createObjectURL(stream);
}, function (error) {
console.log(error);
})
Run Code Online (Sandbox Code Playgroud)