AnyChat技术支持论坛

标题: c#打开摄像头的问题 [打印本页]

作者: 于凌峰    时间: 2014-3-28 09:53
标题: c#打开摄像头的问题
您好,我用C#调用接口函数打开摄像头时出现如下问题:当处于调试状态时一次就可以打开摄像头了,但是在运行状态下需要点击两次接受按钮才可以打开摄像头?这是为什么呢,是不是因为我的摄像头之前未释放,所以需要点击两次啊?代码如下:
string strSend = "VIDEO_YES";
            byte[] buffer = Encoding.Default.GetBytes(strSend);
            
            int rett = AnyChatCoreSDK.TransBuffer(myFriendID, buffer, buffer.Length);

            int iret = AnyChatCoreSDK.EnterRoom(nRoomID,"",0);

                       ret = ANYCHATAPI.AnyChatCoreSDK.UserSpeakControl(-1, true);
作者: 于凌峰    时间: 2014-3-28 09:54
这是后面的:int ret = ANYCHATAPI.AnyChatCoreSDK.SetVideoPos(-1, pictLocalVideo.Handle, 0, 0, pictLocalVideo.Width, pictLocalVideo.Height);             ret = ANYCHATAPI.AnyChatCoreSDK.UserCameraControl(-1, true);             ret = ANYCHATAPI.AnyChatCoreSDK.UserSpeakControl(-1, true);
作者: admin    时间: 2014-3-28 09:58
您好,需要进入房间成功之后才能打开音视频设备,请参考:http://www.anychat.cn/faq/index. ... =193&artlang=zh

从您上面的代码来看,先调用EnterRoom,没有等到进入房间成功(注:调用EnterRoom返回0并不代表进入房间成功),然后调用API打开音视频设备,可能会存在API调用不成功的可能性。
作者: 于凌峰    时间: 2014-3-28 11:18
哦,这样啊,那意思就是我要等到进入房间成功的消息返回调用打开本地和申请对方音视频数据就可以了是吧?
作者: 廖斌    时间: 2014-3-28 11:24
于凌峰 发表于 2014-3-28 11:18
哦,这样啊,那意思就是我要等到进入房间成功的消息返回调用打开本地和申请对方音视频数据就可以了是吧?

是的,然后调用setVideoPos显示就可以了
作者: 于凌峰    时间: 2014-3-28 12:01
还有一点就是,我只调用一次EnterRoom函数,如果进入房间失败,它会不会重新进入啊?按道理进入不成功应该会的吧,当然房间号是不重复的。
作者: 廖斌    时间: 2014-3-28 12:07
于凌峰 发表于 2014-3-28 12:01
还有一点就是,我只调用一次EnterRoom函数,如果进入房间失败,它会不会重新进入啊?按道理进入不成功应该 ...

进入失败就不会重新进入了,需要再次调用进入。
作者: 于凌峰    时间: 2014-3-28 12:14
哦,这样啊,那我要实现好友请求视频功能我点击接受后就把接受按钮隐藏了,那进不去岂不是没法调用摄像头?
作者: 廖斌    时间: 2014-3-28 12:50
于凌峰 发表于 2014-3-28 12:14
哦,这样啊,那我要实现好友请求视频功能我点击接受后就把接受按钮隐藏了,那进不去岂不是没法调用摄像头?

隐藏按钮之后,你照样可以在程序中执行进入房间的操作
作者: 于凌峰    时间: 2014-3-28 13:47
恩,知道了,谢谢啊




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