设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
楼主: bdcn
打印 上一主题 下一主题

anychat.GetUserVideoWidth(id)的值问题

[复制链接]

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
楼主
发表于 2014-2-19 17:54:31 | 显示全部楼层
您好,打开摄像头是做了什么操作呢?您在标准demo视频通话中,获取这个两个状态是怎样的呢?
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
沙发
发表于 2014-2-19 18:10:48 | 显示全部楼层
bdcn 发表于 2014-2-19 17:56
if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEO ...

您在标准demo视频通话中,获取这个两个状态是怎样的呢?
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
板凳
发表于 2014-2-20 11:31:01 | 显示全部楼层
日志没有问题。你昨天说的GetUserVideoWidth获取不到宽度的问题,我昨天在标准demo上面试过了,Java采集和显示模式确实获取不到,不过不影响视频的显示。实际上对于Java模式,标准demo中的CheckVideoStatus函数没有用到。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
地板
发表于 2014-2-20 11:47:25 | 显示全部楼层
bdcn 发表于 2014-2-20 11:40
if (anychat.GetCameraState(-1) == 2 && anychat.GetUserVideoWidth(-1) != 0) {
                                SurfaceHolder h ...

是什么视频不显示,本地视频还是远程?
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
5#
发表于 2014-2-20 11:55:23 | 显示全部楼层
廖斌 发表于 2014-2-20 11:47
是什么视频不显示,本地视频还是远程?

你视频采集和播放用的是Java模式还是内核模式?Java模式的话,不会涌动啊这端代码的
  1.   if (anychat.GetCameraState(-1) == 2 && anychat.GetUserVideoWidth(-1) != 0) {
  2.                                 SurfaceHolder holder = myView.getHolder();
  3.                                 // 如果是采用内核视频显示(非Java驱动),则需要设置Surface的参数
  4.                                 if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) != AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {
  5.                                         holder.setFormat(PixelFormat.RGB_565);
  6.                                         holder.setFixedSize(anychat.GetUserVideoWidth(-1), anychat.GetUserVideoHeight(-1));
  7.                                 }
  8.                                 Surface s = holder.getSurface();
  9.                                 anychat.SetVideoPos(-1, s, 0, 0, 0, 0);
  10.                                 bSelfVideoOpened = true;
  11.                         }
复制代码
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
6#
发表于 2014-2-20 14:41:24 | 显示全部楼层
bdcn 发表于 2014-2-20 12:07
本地视频不显示

您用的是Java模式还是内核呢?如果是Java模式的话,调用到了
  1. myView.getHolder().addCallback(AnyChatCoreSDK.mCameraHelper);        
复制代码
吗?这行代码是直接打开摄像头
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
7#
发表于 2014-2-20 15:06:55 | 显示全部楼层
bdcn 发表于 2014-2-20 14:52
我加了打印,看到这行代码执行了

这句代码是直接打开摄像头预览,照理说应该可以显示本地预览的。你本地surfaceview中布局中正常吧,有大小?背景透明?没有叠加在远程视频上面吧?
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
8#
发表于 2014-2-20 15:54:11 | 显示全部楼层
本帖最后由 廖斌 于 2014-2-20 16:04 编辑
bdcn 发表于 2014-2-20 15:09
大小为150x100,叠加在远程视频上面


叠加显示需要将叠加在上面的surfaceview设置到最顶层(你的情况就是本地surfaceview)。在Activity的onCreate获取到surfaceview实例之后调用
  1.         surfaceview.setZOrderOnTop(true);
复制代码
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
9#
发表于 2014-2-21 10:26:44 | 显示全部楼层
如果用的是Java模式,调试一下,在AnyChatCameraer的surfaceCreated中打个断点,看执行情况
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
10#
发表于 2014-2-21 12:34:51 | 显示全部楼层
bdcn 发表于 2014-2-21 12:26
// 如果是采用Java视频采集,则需要设置Surface的CallBack
if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDef ...

这种情况通常原因有两方面
1、调用selfSurfaceHolder.addCallback(AnyChatCoreSDK.mCameraHelper);时机不对。需要在activity的oncreate中调用

2、selfSurfaceHolder不可见(invisiable,gone或者被遮挡)

上次说selfSurfaceHolder要设置setZOrderOnTop(true),远程surfaceview没有设置吧?远程设置了的话,那就没效果了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 01:13 , Processed in 0.122860 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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