lslizhonghua 发表于 2014-4-28 17:21:17

关于切换发言人后前一发言人声音取消请求无效的问题?

版主:
   你好!
   我们再使用anychat Web SDK最新版本进行视频会议系统开发中遇到如下问题:

在切换发言人后,新发言人的视频和声音都切换过来了,但是,之前的发言人的声音没有能够关闭,导致的效果就是,只要前面发过言的人
后面再切换新发言人后,大家都还是能听到他说话(只是看不到他的视频了),就像多人聊天一样,只是只能看到最后一个发言人的视频而已,
这与我们的业务逻辑不吻合,我们需要切换发言人后,全场只能看到该发言人视频,只能听到该发言人的声音,而现在是能听到所有曾经发过言的人的
声音。

在我的代码逻辑中是对之前发言人的声音执行了取消请求的逻辑处理,但是好像没有生效,下面是我的代码逻辑:

//请求发言人音频视频
function requestSpeakerVideo(speakerid)
{
        if(speakerid!=-1)
        {
                // 判断是否需要取消对之前发言人音视频数据的请求
                if (mTargetUserId != -1) {
                        alert(mTargetUserId);
                  BRAC_UserCameraControl(mTargetUserId, 0);
                  BRAC_UserSpeakControl(mTargetUserId, 0);
                }   
                mTargetUserId = speakerid;                                
                BRAC_UserCameraControl(speakerid, 1);                 // 请求对方视频
                BRAC_UserSpeakControl(speakerid, 1);                 // 请求对方语音
                //设置远程视频显示位置
                BRAC_SetVideoPos(speakerid, GetID("AnyChatRemoteVideoDiv"), "SpeakerVideo");
                GetID("SpeakerVideo").SetBkImage(BASE_URL+"/imgfile:///C:/Users/ADMINI~1/AppData/Local/Temp/LKNIT0K@G.gifideo_icon.jpg");//更换背景图片
               
                if(mSelfUserId==mTargetUserId)//如果发言人为本地用户则本地视频不显示
                {
                        BRAC_SetVideoPos(0, GetID("AnyChatLocalVideoDiv"), "LocalVideo");
                        //如果自己被设置为发言人则禁用自己的申请发言按钮
                        $("#apply_speak_btn").addClass("apply_speak_forbidden_btn");
                }else
                {
                        if(!LocalVideoIsShow()) //如果本地视频无显示
                        {
                                BRAC_SetVideoPos(mSelfUserId, GetID("AnyChatLocalVideoDiv"), "LocalVideo");
                        }
                        //如果非自己被设置为发言人则激活自己的申请发言按钮
                        $("#apply_speak_btn").addClass("apply_speak_btn");
                }
               
       }
}
请问是什么原因?

廖斌 发表于 2014-4-28 17:40:50

您好,在我们标准demo上面也是这样吗?运行www.anychat.cn/web看看,切换房间中的用户列表

admin 发表于 2014-4-28 20:58:47

您好!在切换发言人后,新发言人的视频和声音都切换过来了,但是,之前的发言人的声音没有能够关闭
通常来说,如果对方的声音没有关闭,则可能是BRAC_UserSpeakControl(otheruserid, 0)没有调用,或是调用参数(如userid)传递有误造成的。

建议这样排查问题原因:出现问题之后,分析插件安装目录下(默认为:c:\program files(x86)\bairuitech\anychatweb)的日志文件:BRAnyChatCore.log,分析一下里面记录的api调用逻辑、参数是否正常。
页: [1]
查看完整版本: 关于切换发言人后前一发言人声音取消请求无效的问题?