Android视频开发-视频显示修正
1、增加的API接口参数定义(以BRAChat for Web SDK为例):
-
- // 远程视频方向修正标志定义
- var BRAC_ROTATION_FLAGS_MIRRORED = 0x1000; // 图像需要镜像翻转
- var BRAC_ROTATION_FLAGS_ROTATION90 = 0x2000; // 顺时针旋转90度
- var BRAC_ROTATION_FLAGS_ROTATION180 = 0x4000; // 顺时针旋转180度
- var BRAC_ROTATION_FLAGS_ROTATION270 = 0x8000; // 顺时针旋转270度
-
- // 用户信息控制类型定义(API:BRAC_UserInfoControl 传入参数)
- var BRAC_USERINFO_CTRLCODE_ROTATION = 8; // 让指定的用户视频在显示时旋转,wParam为旋转角度参数
- BRAC_UserInfoControl(mTargetUserId, BRAC_USERINFO_CTRLCODE_ROTATION, BRAC_ROTATION_FLAGS_ROTATION90, 0, "");
- BRAC_UserInfoControl(mTargetUserId, BRAC_USERINFO_CTRLCODE_ROTATION, BRAC_ROTATION_FLAGS_ROTATION90 + BRAC_ROTATION_FLAGS_MIRRORED, 0, "");
- BRAC_UserInfoControl(mTargetUserId, BRAC_USERINFO_CTRLCODE_ROTATION, 0, 0, "");
注意:新增加的API接口目前暂时只支持BRAChat for Windows SDK,BRAChat for Web SDK,从BRAChatr3997开始的版本即可支持。
2、从BRAChatr4012版本开始,BRAChat for Android SDK也支持“视频方向手工修正”API接口,可用于修正本地视频采集的方向。
修正本地视频采集方向时,userid为-1即可,参考如下API调用:
- // 禁止本地视频自动旋转
- AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 0);
- AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, AnyChatDefine.BRAC_ROTATION_FLAGS_ROTATION90, 0, "");
- AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 1);
- AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, 0, 0, "");
对本地的视频采集方向进行手工修正,通常用于某些特定的Android设备(手机、Pad),当采集的视频方向和标准Android框架有差异时进行校正,通常在本地进行校正之后,便不需要在远程进行校正。
可以在任何时机对本地视频采集方向进行动态的修正,即可以动态的调用上面的API接口。
3、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, "");
第三个参数的取值是偏转角度,参考web版本的值定义。
4、温馨提醒:建议你在视频通话中加一个按钮,然后单击按钮调用采集修正,这样更容易看到效果
第一步开启手动修改视频显示方向,需要关闭视频本地视频自动旋转
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 0);
第二步修正采集方向
AnyChatCoreSDK.UserInfoControl(-1, AnyChatDefine.BRAC_USERINFO_CTRLCODE_ROTATION, AnyChatDefine.BRAC_ROTATION_FLAGS_ROTATION90, 0, "");第三个参数为0是不做任何修正,可以取的值有
- 03.var BRAC_ROTATION_FLAGS_MIRRORED = 0x1000; // 图像需要镜像翻转
-
- 04.var BRAC_ROTATION_FLAGS_ROTATION90 = 0x2000; // 顺时针旋转90度
-
- 05.var BRAC_ROTATION_FLAGS_ROTATION180 = 0x4000; // 顺时针旋转180度
-
- 06.var BRAC_ROTATION_FLAGS_ROTATION270 = 0x8000; // 顺时针旋转270度
-
更多相关文章
- Android(安卓)View移动的3种方式总结
- Android(安卓)WebView Video播放.mp4视频失败 其他端正常---视频
- 移动端关于video标签视频全屏播放的兼容适配问题
- android压缩图片保存为文件后显示方向被改的解决方法
- Android(安卓)Camera的使用(一)
- Android之Handler与AsyncTask的那些事
- 2012-7-18 Android(安卓)的Paint(画笔)及Canvas(画布)
- Android中 AsyncTask和Handler对比(特别有用)
- Android控制使用视频教程