|
版主:
你好!
我们再使用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+"/img[img]file:///C:/Users/ADMINI~1/AppData/Local/Temp/[LC3U)F%7B0XCAB)LKNIT0K@G.gif[/img]ideo_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");
}
}
}
请问是什么原因?
|
|