AnyChat技术支持论坛

标题: 可不可以直接以固定id登陆?单方向的视频监控怎么实现?接口继承代码不写可以吗? [打印本页]

作者: liuleir    时间: 2015-4-16 02:48
标题: 可不可以直接以固定id登陆?单方向的视频监控怎么实现?接口继承代码不写可以吗?
如题,连接用户的函数里面带的参数是int型的id而非string型的username,这会导致目标不准确,有没有什么办法直接以固定id登陆,或者从用户名获取id。

视频监控问题,视频发出方没有surfaceview,查看方只有一个view,此时用视频聊天的代码可以实现连接吗?具体怎么改?

查看方程序可以不写接口继承代码么?

先谢谢了。
作者: 廖斌    时间: 2015-4-16 08:55
您好,
连接用户的函数里面带的参数是int型的id而非string型的username,这会导致目标不准确,有没有什么办法直接以固定id登陆,或者从用户名获取

(1)调用登录的时候,服务器会返回一个userid,这个userid可以通过业务服务器去设置,可以固定。参考
        AnyChat平台用户身份验证与第三方平台集成的问题
(2)另外进入房间成功后,是可以通过userid获取用户名的,是可以建议用户名和用户id一对一对应的关系。
视频监控问题,视频发出方没有surfaceview,查看方只有一个view,此时用视频聊天的代码可以实现连接吗?具体怎么改?
对于提供视频源方,必须提供一个surfaceiew,才能进行视频采集。如果不想让视频源方看到本地预览,可以将surfaceview的大小设置为1px,隐藏界面。参考帖子
http://bbs.anychat.cn/forum.php? ... &extra=page%3D1

作者: liuleir    时间: 2015-4-16 10:12
廖斌 发表于 2015-4-16 08:55
您好,

(1)调用登录的时候,服务器会返回一个userid,这个userid可以通过业务服务器去设置,可以固定 ...

是不是源方只需要写入:
1.新建一个AnyChatCoreSDK对象
2.设置基本回调事件接收
3.初始化SDK,anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0);
4.连接、登录服务器并进入房间
5.准备一个预览本地的surfaceView(可以invisible)
6.设置必要的参数,AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 1);
7.摄像头硬件初始化
8.打开本地音视频
是不是有以上几个步骤源方程序就OK了?
作者: liuleir    时间: 2015-4-16 10:14
廖斌 发表于 2015-4-16 08:55
您好,

(1)调用登录的时候,服务器会返回一个userid,这个userid可以通过业务服务器去设置,可以固定 ...

还有查看方:
1.新建一个AnyChatCoreSDK对象
2.设置基本回调事件接收
3.初始化SDK,anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0);
4.连接、登录服务器并进入房间
5.准备一个预览远端的surfaceView
6.请求远程音视频

以上有没有错的或者漏掉的步骤?多谢解答。
作者: 廖斌    时间: 2015-4-16 10:39
liuleir 发表于 2015-4-16 10:14
还有查看方:
1.新建一个AnyChatCoreSDK对象
2.设置基本回调事件接收

您好,没问题,具体的代码调用参考我们提供的开发流程指南:doc\AnyChat SDK for Android 开发流程指南.pdf
作者: liuleir    时间: 2015-4-16 10:55
对了,还有源方需要操作吗?可以直接只是查看方操作就可以直接查看源方的视频吗?
作者: 廖斌    时间: 2015-4-16 10:57
liuleir 发表于 2015-4-16 10:55
对了,还有源方需要操作吗?可以直接只是查看方操作就可以直接查看源方的视频吗?

两方都需要的。一方是打开本地视频,另外一方是请求远程视频
作者: 佰锐科技-颜荣芝    时间: 2015-4-16 11:00
您好,需要双方都进行相应的操作的
作者: liuleir    时间: 2015-4-16 11:25
廖斌 发表于 2015-4-16 10:39
您好,没问题,具体的代码调用参考我们提供的开发流程指南:doc\AnyChat SDK for Android 开发流程指南.p ...

anychatSDK.SetBaseEvent(this);这句话有错误?在this上,改为anyChatSDK.SetBaseEvent((com.bairuitech.anychat.AnyChatBaseEvent) this);后运行错误log显示activity can not cast to com.bairuitech.anychat.AnyChatBaseEvent ,请教怎么解决?
作者: 廖斌    时间: 2015-4-16 11:30
liuleir 发表于 2015-4-16 11:25
anychatSDK.SetBaseEvent(this);这句话有错误?在this上,改为anyChatSDK.SetBaseEvent((com.bairuitech. ...

您好,anyChatSDK.SetBaseEvent((com.bairuitech.anychat.AnyChatBaseEvent) this)这样调用是不行,要传入对象,不能传入类的。在你的activity中实现AnyChatBaseEvent接口,就可以anychatSDK.SetBaseEvent(this);这样调用了
作者: liuleir    时间: 2015-4-16 21:24
廖斌 发表于 2015-4-16 08:55
您好,

(1)调用登录的时候,服务器会返回一个userid,这个userid可以通过业务服务器去设置,可以固定 ...

是这样的,我已知房间里有一个用户名为BKD的用户但我不知道他以游客身份登陆后分配到的id,此时我有什么办法或用什么函数可以获取到他的id。(我和他已经同处一个房间)。可以在安卓程序里解决吗,还是必须配置业务服务器?如果必须配置业务服务器,具体怎么弄,server SDK开发指南我看了,但是还是不懂怎么配置,求详解。真的非常感谢。(只要实现可以获取id就可以了)
作者: admin    时间: 2015-4-16 22:44
可以获取的,调用API接口:
  1. // 获取当前房间在线用户列表
  2.     public native int[] GetOnlineUser();
复制代码
可以获取房间所有用户的userid,然后再调用API接口:
  1. // 查询指定用户名称
  2.         public String GetUserName(int userid)
复制代码
可以查询userid所对应的用户名称。

不需要配置业务服务器。
作者: liuleir    时间: 2015-4-17 02:11
本帖最后由 liuleir 于 2015-4-17 02:16 编辑
admin 发表于 2015-4-16 22:44
可以获取的,调用API接口:可以获取房间所有用户的userid,然后再调用API接口:可以查询userid所对应的用户 ...

变量定义:

方式1:


方式2:


用方式1的代码运行时,安卓应用程序会闪退,显示 停止运行。测试是 mRemoteUserid = userID[0];这句话导致的,为什么?

方式2的使用方法正确吗?程序无报错运行,却无法实现功能,为什么?(我测试如果直接给mRemoteUserid一个已知的(int)id,如mRemoteUserid = -170;可以实现监控,所以就是获取id这里有问题)


以上问题如何解决?谢谢你们的耐心指导。


定义的变量.png (1.84 KB, 下载次数: 5482)

定义的变量

定义的变量

方式1.png (3.91 KB, 下载次数: 5547)

方式1

方式1

方式2.png (6.53 KB, 下载次数: 5532)

方式2

方式2

作者: admin    时间: 2015-4-17 09:13
您好,您的代码中for循环应该是index++,而不是++index。
另外您需要在进入房间成功之后,再调用获取房间用户的API接口。如果还没有进入房间,所获取到的数组为空,所以您直接访问userid[0]肯定就会产生异常。





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