AnyChat技术支持论坛

标题: 求解——关于1对1音视频聊天的基本实现 [打印本页]

作者: kenshin    时间: 2015-12-23 10:32
标题: 求解——关于1对1音视频聊天的基本实现
需求:在我的IOS项目里面实现了一个类似通讯的表单页面。现在我想借助AnyChat SDK 开发,当用户点击某一个联系人中的请求音频 或者 视频聊天的 按钮时,对应的联系人能收到请求,当对应联系人接受请求时,两人可以进行音频 或者 视频 的即时通讯。

我觉得官方给的Demo再精简一些就好了。

比如告诉我 怎样最简单的实现 上诉的 一对一的即时通讯。因为这样方便扩展啊。求大神搭救。


作者: 佰锐科技-陈伟    时间: 2015-12-23 10:35
您好  文档在AnyChatCoreSDK_iOS_V2.3.zip\AnyChatCoreSDK_iOS_r4840\doc 里 ,介绍很详细,有疑可以发帖
作者: kenshin    时间: 2015-12-23 10:37
佰锐科技-陈伟 发表于 2015-12-23 10:35
您好  文档在AnyChatCoreSDK_iOS_V2.3.zip\AnyChatCoreSDK_iOS_r4840\doc 里 ,介绍很详细,有疑可以发帖:h ...

原来如此 是我粗心了 谢谢!
作者: kenshin    时间: 2015-12-23 11:08
佰锐科技-陈伟 发表于 2015-12-23 10:35
您好  文档在AnyChatCoreSDK_iOS_V2.3.zip\AnyChatCoreSDK_iOS_r4840\doc 里 ,介绍很详细,有疑可以发帖:h ...

你好 我在 SDK 开发包的“sdk\libs\”和“sdk\libs\audiopro cess”目录里没有找到开发文档中说的c++的静态库,我只需要做一对一的即时通讯 以及 一个请求聊天 和响。我应该怎么做呢?


作者: 佰锐科技-陈伟    时间: 2015-12-23 11:22
kenshin 发表于 2015-12-23 11:08
你好 我在 SDK 开发包的“sdk\libs\”和“sdk\libs\audiopro cess”目录里没有找到开发文档中说的c++的静 ...

您好  这三个静态库是ios Xcode 环境自带的
作者: kenshin    时间: 2015-12-23 11:23
佰锐科技-陈伟 发表于 2015-12-23 11:22
您好  这三个静态库是ios Xcode 环境自带的

额 谢谢。明白了
作者: kenshin    时间: 2015-12-24 13:36
佰锐科技-陈伟 发表于 2015-12-23 11:22
您好  这三个静态库是ios Xcode 环境自带的

你好,我照着开发的文档写了个demo,登录的时在回调函数 - (void) OnAnyChatConnectBOOL) bSuccess 中返回了 NO, 请问我忽略什么吗?一直没找到原因。下面是我初始化的代码

作者: 陈文仲    时间: 2015-12-24 13:54
kenshin 发表于 2015-12-24 13:36
你好,我照着开发的文档写了个demo,登录的时在回调函数 - (void) OnAnyChatConnectBOOL) bSuccess 中 ...

您好,官网的地址TCP端口号是8906。
作者: kenshin    时间: 2015-12-24 14:26
陈文仲 发表于 2015-12-24 13:54
您好,官网的地址TCP端口号是8906。

已经解决了 谢谢!
作者: kenshin    时间: 2015-12-28 15:49
佰锐科技-陈伟 发表于 2015-12-23 11:22
您好  这三个静态库是ios Xcode 环境自带的

你好,我在邀请某用户进行聊天的时候调用了下面的函数

[AnyChatPlatform VideoCallControl:BRAC_VIDEOCALL_EVENT_REQUEST :userid :0 :0 :0 :nil];

于是我的代理函数被触发:
- (void) OnAnyChatVideoCallEventCallBackint) dwEventType : (int) dwUserId : (int) dwErrorCode : (int) dwFlags : (int) dwParam : (NSString*) lpUserStr
{。。。。。。。   case BRAC_VIDEOCALL_EVENT_START:
        {
            if (theWaitingAlertView != nil) {
                [self dimissAlertView:theWaitingAlertView];
            }
            
            //进入的房间号 == dwParam == 1
            [AnyChatPlatform EnterRoom:dwParam ""];
            
            break;
        }
}
为什么每次进入的房间号:dwParam 都是1? 我想将房间号设置成 发起者的 userid 请问在哪里设置呢?

作者: 佰锐科技-李友勤    时间: 2015-12-28 16:22
kenshin 发表于 2015-12-28 15:49
你好,我在邀请某用户进行聊天的时候调用了下面的函数

[AnyChatPlatform VideoCallControl:BRAC_VIDEO ...

您好,房间号为调用接口时自定义传入的一个参数。
您这里的为1是因为业务服务器定义了默认值。您可以参考下sdk开发文档中关于进入房间接口BRAC_EnterRoom的说明
作者: kenshin    时间: 2015-12-28 16:31
佰锐科技-李友勤 发表于 2015-12-28 16:22
您好,房间号为调用接口时自定义传入的一个参数。
您这里的为1是因为业务服务器定义了默认值。您可以参 ...

BRAC_EnterRoom 没有找到诶? 只有BRAC_SO。。。。
作者: 佰锐科技-李友勤    时间: 2015-12-28 16:42
kenshin 发表于 2015-12-28 16:31
BRAC_EnterRoom 没有找到诶? 只有BRAC_SO。。。。

您好,进入房间接口,在iOS中的写法为+(int)EnterRoom:(int)dwRoomidNSString*)lpRoomPass
请参考开发文档的进入房间接口说明,在sdk根目录/doc下的开发文档第5.2.5节。
作者: kenshin    时间: 2015-12-28 16:46
佰锐科技-李友勤 发表于 2015-12-28 16:42
您好,进入房间接口,在iOS中的写法为+(int)EnterRoom:(int)dwRoomidNSString*)lpRoomPass
请参 ...

谢谢,我明弄清楚流程结果越写越乱。 我还是先仔细看看开发文档吧! 谢谢
作者: kenshin    时间: 2015-12-28 17:54
陈文仲 发表于 2015-12-24 13:54
您好,官网的地址TCP端口号是8906。

你好,我想让视频呼叫回话开始的时候,双方用户都进入同一个房间,这个房间号是 发起者的userid。
不知道是不是在下面的回调函数中做修改,请问这个怎么弄呢?

下面的回调函数中的这个case 在发送请求 和接收请求的时候都会触发,我看了注释,没有找到一个合适的区分,我想区分发起者 和 被邀请者的响应方式。
- (void) OnAnyChatVideoCallEventCallBackint) dwEventType : (int) dwUserId : (int) dwErrorCode : (int) dwFlags : (int) dwParam : (NSString*) lpUserStr
{
   
    theUserEntity.theEntityRemoteID = dwUserId;
   
    switch (dwEventType)
    {
.....
case BRAC_VIDEOCALL_EVENT_START:
        {
            if (theWaitingAlertView != nil) {
                [self dimissAlertView:theWaitingAlertView];
            }
            
            [AnyChatPlatform EnterRoom:dwParam ""];
            
            break;
        }
.....
}
作者: 佰锐科技-邵光清    时间: 2015-12-28 18:13
本帖最后由 佰锐科技-邵光清 于 2015-12-28 20:14 编辑
kenshin 发表于 2015-12-28 17:54
你好,我想让视频呼叫回话开始的时候,双方用户都进入同一个房间,这个房间号是 发起者的userid。
不知 ...

您好,如果房间号是发起者userid的话,在enterroom接口中传入该用户的id(int类型)即可!
作者: kenshin    时间: 2015-12-28 18:15
本帖最后由 kenshin 于 2015-12-28 18:16 编辑
佰锐科技-邵光清 发表于 2015-12-28 18:13
您好,如果房间号是发起者userid的话,在enterroom接口中传入该用户的id即可!

两个客户端的代码这样写,但是 id都是各自的id啊,额,这个是编程的问题 我自己想想吧 谢谢
作者: 佰锐科技-邵光清    时间: 2015-12-28 18:18
kenshin 发表于 2015-12-28 18:15
两个客户端的代码这样写,但是 id都是各自的id啊,额,这个是编程的问题 我自己想想吧 谢谢

您好,可以将本地的用户id发给对方,对方收到之后进入该房间。
作者: kenshin    时间: 2015-12-28 18:25
本帖最后由 kenshin 于 2015-12-28 18:26 编辑
佰锐科技-邵光清 发表于 2015-12-28 18:18
您好,可以将本地的用户id发给对方,对方收到之后进入该房间。

亲,该不会让我用远程推送来发这个用户id吧? 下面是我之前的做法,未果


我原本是想用上面的 GetUserFriend 获取全部的 userid 然后用里面的if来筛选的,可是这个函数给我返回了个空。调用GetOnlienUser 也是返回 nil。是当我用自己的 服务器端ip的时候, 用 demo.anychat.cn的时候是有值的


作者: 佰锐科技-邵光清    时间: 2015-12-28 20:12
kenshin 发表于 2015-12-28 18:25
亲,该不会让我用远程推送来发这个用户id吧? 下面是我之前的做法,未果

您好,GetUserFriend获取大厅在线用户列表,GetOnlienUser获取房间内在线用户列表,注意使用哦!
当调用GetUserFriend时返回空,callcenter业务服务器是否已经成功启动了呢?

当A呼叫B时,会触发B的呼叫event,实际上已经将A的userid传递过去了,此时取到A的userid,然后B再调用enterroom进入该房间。
作者: kenshin    时间: 2015-12-29 10:32
佰锐科技-邵光清 发表于 2015-12-28 20:12
您好,GetUserFriend获取大厅在线用户列表,GetOnlienUser获取房间内在线用户列表,注意使用哦!
当调用 ...

谢谢 我的问题解决了。
作者: kenshin    时间: 2015-12-29 13:27
陈文仲 发表于 2015-12-24 13:54
您好,官网的地址TCP端口号是8906。

视屏通讯时,远端的视频层黑白色 或是灰色,本地的视频显示一切正常。请问我是不是一楼了什么?
作者: 佰锐科技-陈伟    时间: 2015-12-29 13:53
kenshin 发表于 2015-12-29 13:27
视屏通讯时,远端的视频层黑白色 或是灰色,本地的视频显示一切正常。请问我是不是一楼了什么?

您好 远端的视频层黑白色 或是灰色 能截图看看吗?另外将日志贴上来我们分析看看




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3