由于Android的开放性,不同的设备存在一些差异,某些设备所采集的视频数据显示出来在方向上存在一定的误差,这通常与硬件设备的驱动相关,

在使用开发包开发过程中经常会出下有些android设备视频不正常的情况,比如在使用AnyChat即时通讯SDK开发过程中遇到这个问题我们可以这样解决:

新增加的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为旋转角度参数
复制代码


修正本地视频采集方向时,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, "");
复制代码


在视频显示过程中,如果需要将视频顺时针旋转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, "");
复制代码

更多相关文章

  1. android一键分享功能不使用任何第三方sdk
  2. 简约之美Kotlin(一)Android(安卓)Studio创建一个简单的Kotlin应用
  3. 进程(一) 1.1 Android中异步处理大杀器——AsyncTask
  4. Android上超级好用的前端调试方法(adb reverse)
  5. android和PC(Python)通过USB(adb模式)基于Socket传输图像(视频)
  6. Android设计模式 观察者模式之eventbus
  7. Android(java方法)上实现mp4的分割和拼接 (二)
  8. android 如何绕过签名校验
  9. Android上实现仿IOS弹性ListView

随机推荐

  1. Android培训班(18)
  2. Android 混合H5开发两种模式
  3. android studio,Gradle配置: RxJava失败
  4. Android studio添加jar包
  5. Android 获取屏幕尺寸
  6. Android Fragment 和 Activity相互传值
  7. Android(安卓)SDK 中文 (56) —— ViewFlip
  8. Android 关闭当前程序
  9. Android如何判断手机里是否安装了某个应
  10. Android(安卓)自定义View(自定义控件)