gpt4 book ai didi

html - MediaStream 事件和非事件事件不会在远程 WebRTC 对等连接中触发

转载 作者:可可西里 更新时间:2023-11-01 13:48:06 30 4
gpt4 key购买 nike

我有一个远程 MediaStream 对象,通过远程WebRTC Peer Connection 获得。

我想检查远程何时 MediaStream 变为非事件状态(独立于原因)。

我已经读到,为此我应该使用 MediaStream 对象的事件 activeinactive

但这两个事件永远不会被触发:即使我为这两个事件设置了特定的处理程序,处理程序也永远不会被执行。

这里是我的实现:

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);
}

但行为是一样的。

我不明白为什么这两个事件没有被触发。

我使用的是谷歌浏览器 52.0.2743.116 m

最佳答案

不,它工作正常,只是您不能直接为该事件编写函数(根据现已删除的文档)。您还可以在控制台中记录您的 event.stream 对象并查看详细信息。您必须使用预定义属性 onactiveoninactive

我已经编写了一个快速代码来测试如何触发这些事件。

HTML

<video src="" autoplay id="video"></video>

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);
})

关于html - MediaStream 事件和非事件事件不会在远程 WebRTC 对等连接中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39120662/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com