webRTC实现视频聊天会议本地视频展示问题

ProMonkey_Can 2018-07-06 09:01:59
各位大佬们,本人在基于webRTC + websocke实现视频聊天会议室遇到一个问题,就是实现本地视频的回调显示,在一对一或者多人视频的时候,只要有两人或两人以上者开启视频,就会出现websocke断开连接,数据传输通道关闭。但是如果我把本地视频不给绑定到video标签上(不给展示本地视频)就不会报错,这样双方就能看到对方,但是无自己本地视频显示。下面是部分代码展示:
这是一对一视频聊天的窗口


下面是一对一视频的部分代码

各位大佬们,本人在基于webRTC + websocke实现视频聊天会议室遇到一个问题,就是实现本地视频的回调显示,在一对一或者多人视频的时候,只要有两人或两人以上者开启视频,就会出现websocke断开连接,数据传输通道关闭。但是如果我把本地视频不给绑定到video标签上(不给展示本地视频)就不会报错,这样双方就能看到对方,但是无自己本地视频显示。下面是部分代码展示:

这是一对一的窗口



下面是部分代码

//一对一接收到媒体流,处理回调实现
var callbackRemoteVideoOneImpl = function(event){
$("#dialogForOne video[name='remote']").get(0).src = URL.createObjectURL(event.stream);
}
//一对一本地媒体流展示,实现回调
var callbackLocalVideoOneImpl = function(){
var video = $("#dialogForOne video[name='video']").get(0); //获取到展现视频的标签
video.src = window.URL.createObjectURL(stream);//写入
}

//点击开启视频触发事件
$("#dialogForOne button[name='openVideo']").on("click",function(){
$(this).toggleClass("active");
$(this).data("use",$(this).data("use") ? false : true);
if($(this).data("use")){//开启视频语音聊天
callbackLocalVideo = callbackLocalVideoFiveImpl;
openVideoAudioLocal();
openVideoAudioRemote([oneWebRtc],true,true);
$(this).find(" > span").html("结束视频");
$("#dialogForOne button[name='openAudio']").hide();
}else{//关闭视频语音聊天
//closeStream([oneWebRtc]);
closeLocalStream();
closeRemoteChannelStream([oneWebRtc]);
resetVideoButton();
}
});



/**
* 创建一个只有视频没有音频的流绑定到本地控件上
* 为了防止自己能听到自己发出的声音
*/
var openVideoAudioLocal = function(){
getUserMedia.call(navigator, {
video: true,//启动视频
audio: false//启动音频
},function(localMediaStream) {//获取流成功的回调函数
localStream = localMediaStream;
callbackLocalVideo(localStream);
},function(error){
//处理媒体流创建失败错误
console.log("创建本地媒体对象失败:" + error);
});
}
...全文
370 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧