如何解决结束通话后未删除视频元素使用 Webrtc PeerJS SocketIO 的视频聊天应用程序 - 无法获取 peer.on("close", ())
所以我正在使用 WebRTC、SocketIO 和 PeerJS 创建一个基于网络的视频聊天应用程序。但是当一个用户离开时,其余用户仍然可以看到断线用户的冻结视频元素。我怀疑这是因为 peer.on("close",()) 没有被解雇。
const connectToNewUser = (userId,stream) => {
const call = peer.call(userId,stream) //calls new user and sends them our stream
const video = document.createElement('video') //creates new video element for new user
call.on('stream',userVideoStream => {
addVideoStream(video,userVideoStream) //sends new user our stream
})
call.on('close',function(){
console.log('check')
video.remove();
delete videoGrid[userId];
})
peers[userId] = call;
}
const addVideoStream = (video,stream) => {
video.srcObject = stream
video.addEventListener('loadedMetadata',() => {
video.play();
})
videoGrid.append(video);
}
我也怀疑这可能是因为我必须从视频网格中删除视频元素?但是我不确定如果我的 peer.on("close",()) 没有被解雇,我该怎么做。
socket.on("user-disconnected",(userId) => {
//message in chat saying x user disconnected
console.log("New User disconnected");
if (peers[userId]) peers[userId].close();
});
我还看到某处我应该尝试从“用户断开连接”部分中删除视频元素,但是由于它不了解视频元素是什么,这将如何工作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。