设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 4120|回复: 1
打印 上一主题 下一主题

当把视频邀请页面与视频通话页面分开时,视频通话页面的视频无法打开。

[复制链接]

11

主题

25

帖子

143

积分

注册会员

Rank: 2

积分
143
跳转到指定楼层
楼主
发表于 2016-12-26 22:23:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一共有两个页面any.html 和 any_video.html
any.html 含 登录层 和 视频邀请层  any_video.html 只含视频通话层
any.html
<!-- 登录层 -->
<div style="display:none" id="login_div">
                        用户名:<input type="text" name="username" id="username" value="1" />
                        <br />
                        房间号:<input type="text" name="customroomid" id="customroomid" value="1" />
                        <input type="submit" name="" value="登录" />
</div>
<!-- 被呼叫:视频邀请层 -->
<div id=" BeCalls_Div">
<div class="BeCalls_Div_Content" id="BeCalls_Div_Content"></div>
         <button  onclick="AcceptRequestBtnClick()">接听</button>
         <button  onclick="RejectRequestBtnClick()">拒绝</button>       
</div>
主要的javascript部分:
//收到视频呼叫请求
function onVideoCallControlRequest(dwUserId, dwErrorCode, dwFlags, dwParam, szUserStr)
{                var Tusername = BRAC_GetUserName(dwUserId); // 用户姓名
                $("#BeCalls_Div").show();
                $("#BeCalls_Div_Content").html(Tusername + "视频邀请");
                mTargetUserId = dwUserId;
}
//同意会话
function AcceptRequestBtnClick()
{    $("#BeCalls_Div").hide();       
//点击接听按钮后,弹出子页面any_video.html        (即视频通话页面)         
window.open("any_video.html?mSelfUserId="+mSelfUserId+"&mTargetUserId="+mTargetUserId,"_blank","height=800,width=800,top=500,left=500,toolbar=no,menubar=no,scrollbars=no,location=no,resizable=no");
}

any_video.html 只含 视频显示层
<!-- 视频显示层 -->
<div id="VideoShowDiv" style="display:block">
        <div style="display:block" id="AnyChatRemoteVideoDiv"></div>
        <div style="display:block" id="AnyChatLocalVideoDiv"></div>
</div>
主要的javascript部分:
   mTargetUserId = parseInt( GetQueryString("mTargetUserId") );
mSelfUserId = parseInt( GetQueryString("mSelfUserId") );
BRAC_VideoCallControl(BRAC_VIDEOCALL_EVENT_REPLY,mTargetUserId,0,0,0,"");
//通话开始
function onVideoCallControlStart(dwUserId, dwErrorCode, dwFlags, dwParam, szUserStr)
{                   StartVideo(dwUserId);
}
/* **A呼叫B,B点击接听按钮,
弹出any_video.html后,应该执行BRAC_VideoCallControl(),
即调用anychatsdk.js中的BRAC_VideoCallControl(), 然后执行anychatevent.js中的回调函数OnAnyChatVideoCallEvent(){
    onVideoCallControlStart();
}
****但实际上并没有执行anychatevent.js中的回调函数OnAnyChatVideoCallEvent();经分析B点击按钮接听,给A回复同意通话,但是A并有收到回复(因为此时A并没有打开视频),所以服务器没向A、B同时发送(Start)指令,会话无法开始,双方视频都无法打开。
****如果登录层 、 视频邀请层  、视频通话层都在一个页面,一切的通话都是正常的。但是将视频邀请层  、视频通话层分开呈现就会出现以上的问题,是anychat目前不支持分开实现,还是我的问题?如果可以分开实现,那应该怎样实现才能保证any_video.html中的视频通话正常实现。*/

//自定义函数 请求远程视频用户
function StartVideo(userid){
        BRAC_UserCameraControl(mSelfUserId, 1);  // 打开本地视频  
        BRAC_UserSpeakControl(mSelfUserId, 1);   // 打开本地语音   
        BRAC_SetVideoPos(mSelfUserId,document.getElementById("AnyChatLocalVideoDiv"), "ANYCHAT_VIDEO_LOCAL");
        BRAC_UserCameraControl(userid, 1); //请求对方视频
        BRAC_UserSpeakControl(userid, 1);    //请求对方语音
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

2

主题

336

帖子

1243

积分

金牌会员

Rank: 6Rank: 6

积分
1243
沙发
发表于 2016-12-28 09:36:06 | 只看该作者
本帖最后由 佰锐科技-刘洋 于 2016-12-28 09:59 编辑

你好  视频邀请层与视频通话层 最好在同一个页面,然后设置层就可以了,在两个页面设置,页面跳转的时候anychat会重新初始化,这样传过去的值接收到没有意义的。我们的demo都是在一个页面,设置不同的div层来控制的,你可以参考一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-11-24 23:33 , Processed in 0.111023 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表