AnyChat技术支持论坛

标题: anychat.GetCameraState(dwTargetUserId)始终是1 [打印本页]

作者: wearilybird    时间: 2016-4-1 11:06
标题: anychat.GetCameraState(dwTargetUserId)始终是1
开发了一个多人视频的程序,在onAnyChatOnlineUserMessage函数里面我打开了摄像头
int ret = anyChatSdk.UserCameraControl(videoUserId, 1);
ret返回值为0,说明摄像头打开了。
可是我在定时器里面通过anychat.GetCameraState(dwTargetUserId)检测摄像头的状态,
得到的始终是1.
这种情况出现几率还蛮高的。不知道什么原因,怎么查找这个问题?
作者: 佰锐科技-江裕    时间: 2016-4-1 11:21
您好,anychat.GetCameraState(dwTargetUserId)返回值是1表示有摄像头但没有打开。
作者: wearilybird    时间: 2016-4-1 11:41
anyChatSdk.UserCameraControl(videoUserId, 1);
这个不是就是打开摄像头的吗,而且返回0表示摄像头打开成功了
作者: wearilybird    时间: 2016-4-1 11:48
假设我有手机a,b,和web端c,我开始了abc之间的多人视频,在手机a上看不到b,b上可以看到a,c上可以看到a和b。
调试的时候发现a上面获取b的摄像头状态始终为1,可是如果说b的摄像头没有打开,怎么在c上面又能看到b的视频那?
作者: 廖斌    时间: 2016-4-1 13:01
wearilybird 发表于 2016-4-1 11:48
假设我有手机a,b,和web端c,我开始了abc之间的多人视频,在手机a上看不到b,b上可以看到a,c上可以看到a ...

您好,如您所说,c上面可以看到b的视频,说明b的摄像头已经打开了。
至于a上面获取b的摄像头状态为1,可能是a没有请求b的摄像头数据成功。
a必须在b进入房间成功后,请求b的视频。
判断b已经进入房间成功的时机有两个地方,
onAnyChatOnlineUserMessage和OnAnyChatUserAtRoomMessage,
你只在onAnyChatOnlineUserMessage处理了?
作者: wearilybird    时间: 2016-4-1 13:11
刚才我把定时器里面检测摄像头状态的代码屏蔽,就是直接调用这段代码
int videoIndex = anyChatSdk.mVideoHelper.bindVideo(remoteSurface.getHolder());
anyChatSdk.mVideoHelper.SetVideoUser(videoIndex,
                                                                        remoteUserId);
就可以看到视频了。应该是获取摄像头状态的函数有问题。
作者: wearilybird    时间: 2016-4-1 13:31
onAnyChatOnlineUserMessage和OnAnyChatUserAtRoomMessage这两个地方都有打开摄像头的代码,而且我调试的时候确定已经调用了打开摄像头的函数。
作者: 廖斌    时间: 2016-4-1 13:47
wearilybird 发表于 2016-4-1 13:11
刚才我把定时器里面检测摄像头状态的代码屏蔽,就是直接调用这段代码
int videoIndex = anyChatSdk.mVideo ...

您用的什么AnyChat SDK版本呢,我们查下是否是已修正bug
作者: wearilybird    时间: 2016-4-1 14:10
mainVersion:6,subVersion:0




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