设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

Demo的问题咨询

[复制链接]

6

主题

29

帖子

94

积分

注册会员

Rank: 2

积分
94
跳转到指定楼层
楼主
发表于 2014-1-9 10:43:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 aiyuaichou 于 2014-1-9 11:11 编辑

分别把Web的demo和android的demo嵌入到自己开发的软件中一个嵌入WEB主站系统,另一个嵌入android客户端系统,现发生以下问题
1、通过WEB网页,点击对方用户列表,无法实现视频连通,而此时android端demo点击web端用户,可以连接,但web网页上仍然需要点击一次该用户
2、两个三星平板之间用android demo的视频通话,任何一个点击对方用户连接后,但两边都只能看到其中一个终端的本地和远程窗口视频图像,另一个黑屏,anychat android demo没改过,只是完全的嵌入到自己开发的android系统中,通过一个按钮点击进入demo视频的,demo视频的登陆页面被我修改成了空页面,用户名在后台发送的。
请指点
第一个问题:
从网页点击android终端用户“android”无法连接

从android终端点击web用户“tt”实现连接



android客户端点击web用户已经实现对通

此时web端,对方视频看不到,只有手动点击列表中该对方,远程视频才出现

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

使用道具 举报

249

主题

2967

帖子

9102

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9102
沙发
发表于 2014-1-9 11:26:49 | 只看该作者
您好:1、关于Web端需要点一下才能打开用户视频的问题,是由于Web端的示例程序并没有主动请求对方的视频,您可以修改一下JavaScript代码,在用户进入房间时,主动请求对方的视频即可。参考:http://www.anychat.cn/faq/index. ... 2&id=193&artlang=zh

2、关于您反馈的三星Pad通话黑屏的问题,请问采用我们标准demo程序(不嵌入你们的代码中),是否正常?
回复 支持 反对

使用道具 举报

6

主题

29

帖子

94

积分

注册会员

Rank: 2

积分
94
板凳
 楼主| 发表于 2014-1-9 12:18:40 | 只看该作者
admin 发表于 2014-1-9 11:26
您好:1、关于Web端需要点一下才能打开用户视频的问题,是由于Web端的示例程序并没有主动请求对方的视频, ...

我在刷新用户列表方法里function RoomUserListControl(userid, bInsert) ;
添加如下:
// 判断当前ID是否为自己
        if (userid == mSelfUserId) {
            AddImage(itemdiv, mSelfUserId + "_MicrophoneTag", "mSelfMicrophoneTag", "./images/advanceset/microphone_true.png", userid); // 添加话筒图片<img>标签
            itemdiv.innerHTML += "&nbsp" + BRAC_GetUserName(mSelfUserId) + "(自己)";
        } else {
                        AddImage(itemdiv, userid + "_MicrophoneTag", "MicrophoneTag", "./images/advanceset/microphone_false.png", userid); // 添加话筒图片<img>标签
            // 添加用户姓名<a>标签
            var a = document.createElement("a");
            a.id = userid + "_UserTag";
            a.title = BRAC_GetUserName(userid);
            a.innerHTML = BRAC_GetUserName(userid);
            a.href = "javascript:RequestOtherUserVideo(" + userid + ")";            itemdiv.appendChild(a);
                        a.onclick = function () {
                                RequestOtherUserVideo(userid);
            }
        }
然不起作用
上面蓝色部分是原始代码,已经给定该a标签的href
现我手动添加每个a标签的onclick事件,调用请求对方用户视频方法RequestOtherUserVideo(userid),为何不见效呢?
回复 支持 反对

使用道具 举报

6

主题

29

帖子

94

积分

注册会员

Rank: 2

积分
94
地板
 楼主| 发表于 2014-1-9 12:57:01 | 只看该作者
admin 发表于 2014-1-9 11:26
您好:1、关于Web端需要点一下才能打开用户视频的问题,是由于Web端的示例程序并没有主动请求对方的视频, ...

第二个问题回复
    不嵌入我们的代码,没有该问题,请求帮助分析问题原因。。。。
    因为想不明白的是,我嵌入我们代码中,并没有改动任何demo程序,只是完全的套用进去,相当于代码中有个入口点,然后就进入demo程序了
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9102

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9102
5#
发表于 2014-1-9 13:02:13 | 只看该作者
a.innerHTML = BRAC_GetUserName(userid);
后面直接加上
RequertOtherUserVideo
回复 支持 反对

使用道具 举报

6

主题

29

帖子

94

积分

注册会员

Rank: 2

积分
94
6#
 楼主| 发表于 2014-1-9 14:05:22 | 只看该作者
admin 发表于 2014-1-9 13:02
a.innerHTML = BRAC_GetUserName(userid);
后面直接加上
RequertOtherUserVideo

管理员,这种方式是不行的,不但问题无法解决,还造成程序中断
其实我想了解的是:  有没有提供像当某用户请求与另一用户连接时的回调事件,这样我就可以在回调事件中,跟该用户连接一次,解决初次web远端视频不显示的问题
回复 支持 反对

使用道具 举报

6

主题

29

帖子

94

积分

注册会员

Rank: 2

积分
94
7#
 楼主| 发表于 2014-1-9 14:08:41 | 只看该作者
或者我可以得到某用户请求视频连接的通知,我也可以在页面做个提示,就跟QQ一样哦。否则对方跟WEB连接视频,除非通过文字消息告知用户:我跟你连接了,你点击我一下。。。。。请问管理员这问题有办法解决吗
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
8#
发表于 2014-1-9 14:24:29 | 只看该作者
aiyuaichou 发表于 2014-1-9 14:05
管理员,这种方式是不行的,不但问题无法解决,还造成程序中断
其实我想了解的是:  有没有提供像当某用 ...

您好,可能你调用的方法不对。只要获取到了对方的userid,并且对方已经打开了音视频,请求对方的音视频数据然后给定一个div显示就行了,demo中双击列表就是做的这个操作。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
9#
发表于 2014-1-9 14:26:22 | 只看该作者
aiyuaichou 发表于 2014-1-9 14:08
或者我可以得到某用户请求视频连接的通知,我也可以在页面做个提示,就跟QQ一样哦。否则对方跟WEB连接视频 ...

我们sdk提供的视频呼叫接口可以实现一对一的呼叫,请参考帖子http://bbs.anychat.cn/forum.php? ... &extra=page%3D1
回复 支持 反对

使用道具 举报

6

主题

29

帖子

94

积分

注册会员

Rank: 2

积分
94
10#
 楼主| 发表于 2014-1-9 14:39:52 | 只看该作者
廖斌 发表于 2014-1-9 14:26
我们sdk提供的视频呼叫接口可以实现一对一的呼叫,请参考帖子http://bbs.anychat.cn/forum.php?mod=viewt ...

我现在是这么解决的,但不知道如果多用户在线并请求该本地视频时是否会发生什么样的后果或者发生内存泄漏的问题

我在用户进入房间并取得与本地用户的网络连接监听回调事件中,加上了本地主动与远程连接视音频
// 本地用户与其它用户的P2P网络连接状态发生变化,dwUserId表示其它用户ID号,State表示本地用户与其它用户的当前P2P网络连接状态(0:没有连接,1:仅TCP连接,2:仅UDP连接,3:TCP与UDP连接)
function OnAnyChatP2PConnectState(dwUserId, State) {
    //判断当其他远程用户与本地用户建立tcp和udp连接后,本地设置跟该远程用户的视频和音频连接
        if(dwUserId!=-1 && State ==3){
              BRAC_UserCameraControl(dwUserId, 1);                 // 请求对方视频
          BRAC_UserSpeakControl(dwUserId, 1);                 // 请求对方语音
                  BRAC_SetVideoPos(dwUserId, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_REMOTE");
        }
}

在用户进出房间监听的回调事件中,本地主动跟离开的用户断开视音频
// 用户进入(离开)房间,dwUserId表示用户ID号,bEnterRoom表示该用户是进入(1)或离开(0)房间
function OnAnyChatUserAtRoom(dwUserId, bEnterRoom) {
        AddLog("OnAnyChatUserAtRoom(userid=" + dwUserId + ", benter=" + bEnterRoom + ")", LOG_TYPE_EVENT);
        RoomUserListControl(dwUserId, bEnterRoom ? true : false);
    if (bEnterRoom == 1) {
                ShowNotifyMessage(BRAC_GetUserName(dwUserId) +"&nbspenter room!", NOTIFY_TYPE_NORMAL);                                                               
    }
    else {
                ShowNotifyMessage(BRAC_GetUserName(dwUserId) +"&nbspleave room!", NOTIFY_TYPE_NORMAL);
                //当用户离开房间,关闭跟该用户的视频、音频连接
                BRAC_UserCameraControl(dwUserId, 0);
        BRAC_UserSpeakControl(dwUserId, 0);
        if (dwUserId == mTargetUserId) {
                        mTargetUserId = -1;
                        BRAC_SetVideoPos(0, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_REMOTE");
                }
    }
    DisplayScroll("room_div_userlist");
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 21:53 , Processed in 0.153387 second(s), 25 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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