AnyChat技术支持论坛
标题:
关于C#客户端调用EnumVideoCapture方法的疑问?
[打印本页]
作者:
lslizhonghua
时间:
2014-10-18 18:43
标题:
关于C#客户端调用EnumVideoCapture方法的疑问?
版主:
你好!
我在ANYCHAT 的C#客户端调用枚举摄像头设备的方法,代码如下:
......
IntPtr[] videoDeviceName = new IntPtr[10];
int videoDeviceNum = -1;
int ret2 = AnyChatCoreSDK.EnumVideoCapture(videoDeviceName, ref videoDeviceNum); //枚举视频设备
for (int i = 0; i < videoDeviceNum; i++)
{
Logger.Info("VideoDevice " + i + ":" + videoDeviceName[i]);
}
...........
我希望在videoDeviceName数组中获得摄像头的名称数组,但是返回的结果是整形数组:日志打印结果如下:
2014-10-18 17:17:58,846 [4360] INFO AnyChatMonitorServerMainFrm - VideoDevice 0:66966352
2014-10-18 17:17:58,853 [4360] INFO AnyChatMonitorServerMainFrm - VideoDevice 1:66966384
2014-10-18 17:17:58,853 [4360] INFO AnyChatMonitorServerMainFrm - VideoDevice 2:66966416
2014-10-18 17:17:58,853 [4360] INFO AnyChatMonitorServerMainFrm - VideoDevice 3:66968240
请问,我要怎样才能获取到摄像头名称数组????
第二个问题:
我调用 SelectVideoCapture方法想切换摄像头,代码如下:
int m_cam = AnyChatCoreSDK.SelectVideoCapture( videoDeviceName[1].ToString() );
传入的参数就是上面取到的videoDeviceName数组中的某一个元素,但是切换无效,请问是什么原因??
第三: 关于获取摄像头名称数组的操作,和切换摄像头的操作,我在anychat的webSDK中是操作成功了的,
为什么在C#版的客户端SDK中调用同样的方法却不行??
敬待释疑!!
作者:
admin
时间:
2014-10-18 20:48
您好,请参考:
http://bbs.anychat.cn/forum.php?mod=viewthread&tid=155
作者:
lslizhonghua
时间:
2014-10-18 21:09
谢谢,版主问题已解决。现在又遇到一个新的问题:
用c# 客户端SDK开发屏幕共享功能:
用如下语句开启屏幕共享功能
//开启桌面共享功能(默认是关闭状态)
int bEnableScreenCamera = 1; //桌面共享功能控制(参数为:int型, 0 关闭[默认], 1 开启)
AnyChatCoreSDK.SetSDKOption(AnyChatCoreSDK.BRAC_SO_CORESDK_SCREENCAMERACTRL, ref bEnableScreenCamera, sizeof(int));
//应用本地视频编码参数,使得前述修改即时生效(参数为int型:1 使用本地设置的新参数,0 使用服务器端默认参数)
int m_AppLocal = 1;
AnyChatCoreSDK.SetSDKOption(AnyChatCoreSDK.BRAC_SO_LOCALVIDEO_APPLYPARAM, ref m_AppLocal, sizeof(int));
再用: int m_cam = AnyChatCoreSDK.SelectVideoCapture(videoDevices[2]);//videoDevices[2]是我获取到的Native Screen Camera
启动程序时,不能获取到屏幕录像数据,查看日志有如下提示:
****Open Local Video Fail,ErrorCode:10010
查阅文档,未找到 10010 错误码的说明?请问这是什么原因导致的?
作者:
admin
时间:
2014-10-18 21:12
您好,请将完整日志上传看一下!
作者:
lslizhonghua
时间:
2014-10-18 21:24
完整日志如下,谢谢!
=====================
[2014-10-18 21:14:11(387)] ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2014-10-18 21:14:11(388)] Load BRAnyChatCore.dll success!(V5.1 Build Time:Sep 26 2014 15:47:54)
[2014-10-18 21:14:11(407)] Load BRMiscUtil.dll success!(V5.1 Build Time:Sep 26 2014 15:46:12)
[2014-10-18 21:14:11(453)] Load BRMediaUtil.dll success!(V5.1 Build Time:Sep 26 2014 15:46:17)
[2014-10-18 21:14:11(456)] Load BRMediaShow.dll success!(V5.1 Build Time:Sep 26 2014 15:46:19)
[2014-10-18 21:14:11(461)] Load BRMediaCore.dll success!(V5.1 Build Time:Sep 26 2014 15:46:36)
[2014-10-18 21:14:11(534)] Apply video parameter:0x0, bitrate:0, quality:3, gop:25, fps:25, preset:5, codec:0
[2014-10-18 21:14:12(770)] Invoke BRAC_Connect(127.0.0.1,8906)=0
[2014-10-18 21:14:12(772)] Invoke LoginServer(username=2)
[2014-10-18 21:14:12(864)] CheckClientSocketLink Connect(ip=127.0.0.1,port=8906)
[2014-10-18 21:14:12(936)] Server version: V4.9(Build Time:2014-03-09 11:46:41, Server OS:Windows)
[2014-10-18 21:14:12(948)] Message OnConnect(bSuccess:1, errorcode=0)
[2014-10-18 21:14:12(979)] Message OnLoginSystem(userid=2,errorcode=0,username=卫生局2号), msg deliver worked(1)
[2014-10-18 21:14:12(981)] Invoke EnterRoom(roomid=1)
[2014-10-18 21:14:13(021)] Connection to streaming media server successfully!(udp delay:23ms)
[2014-10-18 21:14:13(032)] Message OnEnterRoom(roomid=1,errorcode=0,siteindex=0)
[2014-10-18 21:14:13(034)] Message OnReceiveOnlineUser(count=1,roomid=1)
[2014-10-18 21:14:13(036)] Invoke UserCameraControl(userid=-1,bOpen=1)
[2014-10-18 21:14:13(037)] Invoke UserSpeakControl(userid=-1,bOpen=1)
[2014-10-18 21:14:13(094)] WaveIn Audio Capture Driver(麦克风 (Realtek High Definition)
[2014-10-18 21:14:13(095)] Audio Init, error:0, device:0, 1, 16000, 16, capmode:0
[2014-10-18 21:14:13(095)] Audio codec init, handle:1, 11, 1, 16000, 16, 15850
[2014-10-18 21:14:13(129)] Audio Playback Device Init(0, 1, 16000, 16), WaveOut Playback Driver
[2014-10-18 21:14:13(131)] Audio FX Status: VAD:1, NS:1, AGC:1, AEC:1
[2014-10-18 21:14:14(300)] ****Open Local Video Fail,ErrorCode:10010
作者:
lslizhonghua
时间:
2014-10-19 09:41
补充说明,我的机器环境为win7 32 系统,切换到物理摄像头时正常,就是切换到虚拟的屏幕摄像头(Native Screen Camera)实现屏幕共享时出现上述日志中的错误:
****Open Local Video Fail,ErrorCode:10010
敬待释疑,谢谢!
作者:
admin
时间:
2014-10-19 11:31
试试Web是否正常,参考:
http://bbs.anychat.cn/forum.php? ... &extra=page%3D2
作者:
lslizhonghua
时间:
2014-10-19 15:04
版主:
我试了WEB SDK 也是同样的问题,查了你们的论坛,发现一篇文章:
http://bbs.anychat.cn/forum.php? ... Local%2BVideo%2BFai
觉得可能与该问题有关联,请问现在该怎么解决,谢谢!
作者:
admin
时间:
2014-10-20 11:44
Open Local Video Fail,ErrorCode:10010
请确认brScreenSource.ax在应用程序当前目录下?
作者:
lslizhonghua
时间:
2014-10-20 16:07
这个brScreenSource.ax文件在当前目录下
作者:
lslizhonghua
时间:
2014-10-20 16:09
Open Local Video Fail,ErrorCode:10010
这个brScreenSource.ax文件在当前目录下
我把项目拿到别的win7机器上执行,屏幕摄像头初始化就能够成功,所以是我的环境的问题,但是我不知道,到底我的机器上缺少什么环境??
作者:
admin
时间:
2014-10-20 16:10
您好,请将“AnyChatCoreSDK.SelectVideoCapture(videoDevices[2]);”中,videoDevices[2]的值输出,谢谢。
作者:
lslizhonghua
时间:
2014-10-20 16:25
版主你好,谢谢你的耐心解答,问题解决了,是因为我的初心大意。应该传 VideoDevice[4] 就OK了,现在有个新的疑问:
我机器的摄像头输出如下,请问: VideoDevice 2:3-CorelScreenCapture 与 VideoDevice 4:5-Native Screen Camera 有什么区别,
2014-10-20 08:24:26,806 [6424] INFO AnyChatMonitorServerMainFrm - VideoDevice 0:1-Integrated Webcam
2014-10-20 08:24:26,817 [6424] INFO AnyChatMonitorServerMainFrm - VideoDevice 1:2-Corel Camera Plug-in
2014-10-20 08:24:26,817 [6424] INFO AnyChatMonitorServerMainFrm - VideoDevice 2:3-CorelScreenCapture
2014-10-20 08:24:26,817 [6424] INFO AnyChatMonitorServerMainFrm - VideoDevice 3:4-VDP Source
2014-10-20 08:24:26,817 [6424] INFO AnyChatMonitorServerMainFrm - VideoDevice 4:5-Native Screen Camera
谢谢!
作者:
admin
时间:
2014-10-20 16:37
您好,“Native Screen Camera”是AnyChat内置的虚拟摄像头,用于捕获桌面图像信息,其它的几个摄像头,可能是您安装了其它的第三方软件所附带的虚拟摄像头,您可以换一台计算机,看看枚举出来的摄像头信息是什么。
作者:
lslizhonghua
时间:
2014-10-20 16:40
谢谢版主!
欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/)
Powered by Discuz! X3