webTRC实现视频会议的问题

ProMonkeys 发布于 2018/07/05 14:43
阅读 554
收藏 0

各位大佬们,本人在基于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);
            });
        }

 

加载中
0
甜甜猫咪

纯网页带宽要求会更高我建议用rhub,网络要起低四倍

返回顶部
顶部