设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

AnyChat增加视频方向手工修正API接口

[复制链接]

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
跳转到指定楼层
楼主
发表于 2014-2-22 10:58:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于Android的开放性,不同的设备存在一些差异,某些设备所采集的视频数据显示出来在方向上存在一定的误差,这通常与硬件设备的驱动相关,新增加的API接口便是在远程显示时,可以支持手工来修正远程视频的方向。

增加的API接口参数定义(以AnyChat for Web SDK为例):

  1. // 远程视频方向修正标志定义
  2. var BRAC_ROTATION_FLAGS_MIRRORED       =        0x1000;        // 图像需要镜像翻转
  3. var BRAC_ROTATION_FLAGS_ROTATION90     =        0x2000;        // 顺时针旋转90度
  4. var BRAC_ROTATION_FLAGS_ROTATION180    =        0x4000;        // 顺时针旋转180度
  5. var BRAC_ROTATION_FLAGS_ROTATION270    =        0x8000;        // 顺时针旋转270度

  6. // 用户信息控制类型定义(API:BRAC_UserInfoControl 传入参数)
  7. var BRAC_USERINFO_CTRLCODE_ROTATION    =         8;            // 让指定的用户视频在显示时旋转,wParam为旋转角度参数
复制代码
在视频显示过程中,如果需要将视频顺时针旋转90度,则可以调用如下的API:
  1. BRAC_UserInfoControl(mTargetUserId, BRAC_USERINFO_CTRLCODE_ROTATION, BRAC_ROTATION_FLAGS_ROTATION90, 0, "");
复制代码
在视频显示过程中,如果需要将视频顺时针旋转90度,旋转之后再镜像翻转,则可以调用如下的API:
  1. BRAC_UserInfoControl(mTargetUserId, BRAC_USERINFO_CTRLCODE_ROTATION, BRAC_ROTATION_FLAGS_ROTATION90 + BRAC_ROTATION_FLAGS_MIRRORED, 0, "");
复制代码
在视频显示过程中,如果需要取消旋转,则传入参数0即可,参考如下API调用:
  1. BRAC_UserInfoControl(mTargetUserId, BRAC_USERINFO_CTRLCODE_ROTATION, 0, 0, "");
复制代码
新增加的API接口目前暂时只支持AnyChat for Windows SDK,AnyChat for Web SDK,从AnyChat r3997开始的版本即可支持。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2
回复

使用道具 举报

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
沙发
 楼主| 发表于 2014-3-4 15:13:10 | 只看该作者
从AnyChat r4012版本开始,AnyChat for Android SDK也支持“视频方向手工修正”API接口,可用于修正本地视频采集的方向。

修正本地视频采集方向时,userid为-1即可,参考如下API调用:
  1. // 禁止本地视频自动旋转
  2. AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 0);
  3. AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, AnyChatDefine.BRAC_ROTATION_FLAGS_ROTATION90, 0, "");
复制代码
如果需要取消对本地视频采集方向的修正,则参数传0即可,参考如下API调用:
  1. AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 1);
  2. AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, 0, 0, "");
复制代码

对本地的视频采集方向进行手工修正,通常用于某些特定的Android设备(手机、Pad),当采集的视频方向和标准Android框架有差异时进行校正,通常在本地进行校正之后,便不需要在远程进行校正。


可以在任何时机对本地视频采集方向进行动态的修正,即可以动态的调用上面的API接口。

回复 支持 反对

使用道具 举报

8

主题

40

帖子

146

积分

注册会员

Rank: 2

积分
146
板凳
发表于 2014-3-13 13:46:23 | 只看该作者
admin 发表于 2014-3-4 15:13
从AnyChat r4012版本开始,AnyChat for Android SDK也支持“视频方向手工修正”API接口,可用于修正本地视 ...

在android客户端    我用了 这个   设置了竖屏 为什么还是不行啊
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
地板
发表于 2014-3-13 14:08:39 | 只看该作者
本帖最后由 廖斌 于 2014-3-13 14:20 编辑
coolkissxia 发表于 2014-3-13 13:46
在android客户端    我用了 这个   设置了竖屏 为什么还是不行啊


您好,怎么不行呢?是没效果,还是?

android端使用这个接口主要是调整视频采集方向,对android本地预览没有影响,影响的是android端传到远程视频
使用方法如下
1、初始化sdk之后,调用AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 0);

2、在视频通话中发现android采集方向不对,调用AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, AnyChatDefine.BRAC_ROTATION_FLAGS_ROTATION90 0, "");

第三个参数的取值是偏转角度,参考一楼的值定义。

回复 支持 反对

使用道具 举报

8

主题

40

帖子

146

积分

注册会员

Rank: 2

积分
146
5#
发表于 2014-3-13 14:19:46 | 只看该作者
廖斌 发表于 2014-3-13 14:08
您好,怎么不行呢?是没效果,还是?

android端使用这个接口主要是调整视频采集方向,对android本地 ...

AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, 0, 0, "");

这个是在每一次打开对方视频的视频调用么,是这样子么

                anychat.UserInfoControl(dwUserId,
                                                AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, 90, 0,
                                                "");
                                anychat.UserCameraControl(dwUserId, 1);
                                anychat.UserSpeakControl(dwUserId, 1);
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
6#
发表于 2014-3-13 14:25:47 | 只看该作者
coolkissxia 发表于 2014-3-13 14:19
AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, 0, 0, "");

这 ...

第一步需要关闭视频本地视频自动旋转
1、AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 0);

第二步修正采集方向
AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, AnyChatDefine.BRAC_ROTATION_FLAGS_ROTATION90, 0, "");第三个参数为0是不做任何修正,可以取的值有
  1. 03.var BRAC_ROTATION_FLAGS_MIRRORED       =        0x1000;        // 图像需要镜像翻转

  2. 04.var BRAC_ROTATION_FLAGS_ROTATION90     =        0x2000;        // 顺时针旋转90度

  3. 05.var BRAC_ROTATION_FLAGS_ROTATION180    =        0x4000;        // 顺时针旋转180度

  4. 06.var BRAC_ROTATION_FLAGS_ROTATION270    =        0x8000;        // 顺时针旋转270度

复制代码
建议你在视频通话中加一个按钮,然后单击按钮调用采集修正,这样更容易看到效果



回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 06:20 , Processed in 0.124373 second(s), 25 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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