AnyChat技术支持论坛

标题: 视频采集问题 [打印本页]

作者: 王小峰    时间: 2013-12-6 09:56
标题: 视频采集问题
我想在每个用户进入房间以后都把自己的摄像头打开,采集本地视频。这样每个用户要看对方的视频的时候就可以直接向服务器请求其他用户的视频就可以了!

我在用户进入房间后  启动AnyChat传感器监听,可以采集本地视频
                anychat.mSensorHelper.InitSensor(this);
2:选择摄像头
// 判断是否显示本地摄像头切换图标
                        if (AnyChatCoreSDK
                                        .GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEOCAP_DRIVER_JAVA) {
                                if (AnyChatCoreSDK.mCameraHelper.GetCameraNumber() > 1) {
                                        // 默认打开前置摄像头
                                        AnyChatCoreSDK.mCameraHelper
                                                        .SelectVideoCapture(AnyChatCoreSDK.mCameraHelper.CAMERA_FACING_FRONT);
                                }
                        } else {
                                String[] strVideoCaptures = anychat.EnumVideoCapture();
                                if (strVideoCaptures != null && strVideoCaptures.length > 1) {
                                        // 默认打开前置摄像头
                                        for (int i = 0; i < strVideoCaptures.length; i++) {
                                                String strDevices = strVideoCaptures[i];
                                                if (strDevices.indexOf("Front") >= 0) {
                                                        anychat.SelectVideoCapture(strDevices);
                                                        break;
                                                }
                                        }
                                }
                        }
3:启动摄像头
                        anychat.UserCameraControl(-1, 1);

为什么我其他用户在请求这个用户视频的时候获取不到视频。
作者: 廖斌    时间: 2013-12-6 10:19
你是在什么时候调用
   anychat.UserCameraControl(-1, 1);
的?别人是在什么时候请求你的视频的
作者: 王小峰    时间: 2013-12-6 10:25
我进入房间,我自己打开自己本地是视频采集视频,当和我在一个房间的人看到我在线以后,跳到videoactivity,打开请求我的视频!   
作者: 廖斌    时间: 2013-12-6 10:27
王小峰 发表于 2013-12-6 10:25
我进入房间,我自己打开自己本地是视频采集视频,当和我在一个房间的人看到我在线以后,跳到videoactivity ...
我进入房间,我自己打开自己本地是视频采集视频

在进入房间成功回调中吗?有没有在初始化之后调用设置视频默认参数呢ApplyVideoConfig?
作者: 王小峰    时间: 2013-12-6 10:29
哦,登陆前我就设置了视频默认参数呢ApplyVideoConfig,登陆房间后打开自己的视频和音频方便房间的其他用户查看
作者: admin    时间: 2013-12-6 10:36
您好,您可以看一下我们的android示例代码,有一个timer来定时判断是否有收到对方的视频数据,收到视频数据之后才会设置surface的窗口句柄,您的代码是不是这个地方没有处理好?
作者: 王小峰    时间: 2013-12-6 10:46
哦,我看看我想问一下,我刚进入,打开本地视频的时候,是不是不需要surfaceView。只有在显示我视频的时候我设置一下surfaceView就可以。
作者: 廖斌    时间: 2013-12-6 11:11
王小峰 发表于 2013-12-6 10:46
哦,我看看我想问一下,我刚进入,打开本地视频的时候,是不是不需要surfaceView。只有在显示我视频的时候 ...

打开本地视频的时候是不需要的。如果用Java默认需要在oncreate中绑定一个surfaceview
  1.         // 如果是采用Java视频采集,则需要设置Surface的CallBack
  2.                 if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEOCAP_DRIVER_JAVA) {
  3.                         myView.getHolder().addCallback(AnyChatCoreSDK.mCameraHelper);                       
  4.                 }
复制代码
而如果是Java显示的话,需要在oncreate中绑定surfaceView
  1. if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) == AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {
  2.                         int index = anychat.mVideoHelper.bindVideo(otherView.getHolder());
复制代码
}
在检测到音频数据的时候调用

  1.                         anychat.mVideoHelper.SetVideoUser(index, userID);
复制代码

作者: 王小峰    时间: 2013-12-6 11:24
你好,我的是进入房间一个activity,视频界面一个activity。进入房间后每个人把自己的本地视频给打开!然后每个用户都可以随意的跳到视频界面的activity中看别人的视频数据。比如:a,b,c都进入1房间,都打开自己的摄像头,a可以打开视频界面activity看b采集的数据,可以看c采集过来的数据。b和c不需要做其他动作,因为进入1号房间的时候就已近打开自己的摄像头了。

我想问一下,进入1号房间时,每个人打开自己的摄像头,怎样采集数据给服务器。 这样其他用户直接请求求可以看到视频数据了!用java采集  
作者: 王小峰    时间: 2013-12-6 11:28
廖斌 发表于 2013-12-6 11:11
打开本地视频的时候是不需要的。如果用Java默认需要在oncreate中绑定一个surfaceview而如果是Java显示的 ...
  1.         // 如果是采用Java视频采集,则需要设置Surface的CallBack
  2.                 if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEOCAP_DRIVER_JAVA) {
  3.                         myView.getHolder().addCallback(AnyChatCoreSDK.mCameraHelper);                        
  4.                 }
复制代码
这个是获取本地是视频显示在我定义的myView上。有数据就在我定义的myView上显示,但如果我不想显示,只想采集本地数据给服务器端提供呢!
作者: 廖斌    时间: 2013-12-6 11:47
王小峰 发表于 2013-12-6 11:28
这个是获取本地是视频显示在我定义的myView上。有数据就在我定义的myView上显示,但如果我不想显示,只想 ...

本地视频采集一定要绑定一个surfaceview哦,如果你不想显示,你将surfaceview的尺寸设的很小就行了,比如1PX

作者: 王小峰    时间: 2013-12-6 11:53
廖斌 发表于 2013-12-6 11:47
本地视频采集一定要绑定一个surfaceview哦,如果你不想显示,你将surfaceview的尺寸设的很小就行了,比如 ...

你好,我的是进入房间一个activity,视频界面一个activity。进入房间后每个人把自己的本地视频给打开!然后每个用户都可以随意的跳到视频界面的activity中看别人的视频数据。比如:a,b,c都进入1房间,都打开自己的摄像头,a可以打开视频界面activity看b采集的数据,可以看c采集过来的数据。b和c不需要做其他动作,因为进入1号房间的时候就已近打开自己的摄像头了。

我想问一下,进入1号房间时,每个人打开自己的摄像头,怎样采集数据给服务器。 这样其他用户直接请求求可以看到视频数据了!用java采集  
作者: admin    时间: 2013-12-6 12:09
您好,可参考:http://www.anychat.cn/faq/index. ... =174&artlang=zh




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