设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 9032|回复: 12
打印 上一主题 下一主题

视频采集问题

[复制链接]

47

主题

185

帖子

535

积分

高级会员

Rank: 4

积分
535
跳转到指定楼层
楼主
发表于 2013-12-6 09:56:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在每个用户进入房间以后都把自己的摄像头打开,采集本地视频。这样每个用户要看对方的视频的时候就可以直接向服务器请求其他用户的视频就可以了!

我在用户进入房间后  启动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);

为什么我其他用户在请求这个用户视频的时候获取不到视频。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
沙发
发表于 2013-12-6 10:19:51 | 只看该作者
你是在什么时候调用
   anychat.UserCameraControl(-1, 1);
的?别人是在什么时候请求你的视频的
回复 支持 反对

使用道具 举报

47

主题

185

帖子

535

积分

高级会员

Rank: 4

积分
535
板凳
 楼主| 发表于 2013-12-6 10:25:09 | 只看该作者
我进入房间,我自己打开自己本地是视频采集视频,当和我在一个房间的人看到我在线以后,跳到videoactivity,打开请求我的视频!   
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
地板
发表于 2013-12-6 10:27:11 | 只看该作者
王小峰 发表于 2013-12-6 10:25
我进入房间,我自己打开自己本地是视频采集视频,当和我在一个房间的人看到我在线以后,跳到videoactivity ...
我进入房间,我自己打开自己本地是视频采集视频

在进入房间成功回调中吗?有没有在初始化之后调用设置视频默认参数呢ApplyVideoConfig?
回复 支持 反对

使用道具 举报

47

主题

185

帖子

535

积分

高级会员

Rank: 4

积分
535
5#
 楼主| 发表于 2013-12-6 10:29:48 | 只看该作者
哦,登陆前我就设置了视频默认参数呢ApplyVideoConfig,登陆房间后打开自己的视频和音频方便房间的其他用户查看
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
6#
发表于 2013-12-6 10:36:16 | 只看该作者
您好,您可以看一下我们的android示例代码,有一个timer来定时判断是否有收到对方的视频数据,收到视频数据之后才会设置surface的窗口句柄,您的代码是不是这个地方没有处理好?
回复 支持 反对

使用道具 举报

47

主题

185

帖子

535

积分

高级会员

Rank: 4

积分
535
7#
 楼主| 发表于 2013-12-6 10:46:58 | 只看该作者
哦,我看看我想问一下,我刚进入,打开本地视频的时候,是不是不需要surfaceView。只有在显示我视频的时候我设置一下surfaceView就可以。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
8#
发表于 2013-12-6 11:11:32 | 只看该作者
王小峰 发表于 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);
复制代码
回复 支持 反对

使用道具 举报

47

主题

185

帖子

535

积分

高级会员

Rank: 4

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

我想问一下,进入1号房间时,每个人打开自己的摄像头,怎样采集数据给服务器。 这样其他用户直接请求求可以看到视频数据了!用java采集  
回复 支持 反对

使用道具 举报

47

主题

185

帖子

535

积分

高级会员

Rank: 4

积分
535
10#
 楼主| 发表于 2013-12-6 11:28:56 | 只看该作者
廖斌 发表于 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上显示,但如果我不想显示,只想采集本地数据给服务器端提供呢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-11-23 04:39 , Processed in 0.137025 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表