问题描述
所以我正在使用 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 (将#修改为@)