前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TRTC 9.5 之前版本解决小众平板(蓝莓、希沃)角度问题

TRTC 9.5 之前版本解决小众平板(蓝莓、希沃)角度问题

原创
作者头像
尼尔包曼
修改2022-08-16 11:18:32
1.3K0
修改2022-08-16 11:18:32
举报
文章被收录于专栏:Android debug

背景:教育类客户反馈学生使用市面上一些小众 Android 平板设备出现上课时摄像头角度偏移 90 度的问题

现象截图:

问题设备:蓝莓智学(型号:X-01)、希沃白板(型号:TC02A 、DT15PA)

问题原因:因硬件厂商未对系统 Camera1 做适配,TRTC 9.5 之前版本都是用的 Camera1 ,所以产生摄像头角度兼容问题(目前 TRTC 9.6 之后的重构版本已经支持 Camera2 ,可以升级到最新版解决此问题。如果短时间无法升级到最新版,可以参考以下解决方案)

解决方案:判断 Android WindowManager 的 Display 的角度来解决,经测试发现,这些问题设备 Display 角度和常规设备是不同的,可以根据此条件来做角度适配,此条件可以对这些问题设备都是通用的。

注意:此方案只能兼容 Activity 为横屏状态下的情况(以下兼容逻辑是针对横屏分辨率做的矫正,竖屏分辨率需要调整矫正角度) 兼容逻辑如下(进房前设置):

代码语言:javascript
复制
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
if(wm != null){
    Display display = wm.getDefaultDisplay();
    // rotation:
    // 0(Surface.ROTATION_0---竖屏正向)
    // 1(Surface.ROTATION_90---横屏正向)
    // 2(Surface.ROTATION_180---竖屏反向)
    // 3(Surface.ROTATION_270---横屏反向)
    int rotation = display.getRotation();
    if (Surface.ROTATION_0 == rotation) {
        // 定制机设备横屏下角度
        mTRTCCloud.setGSensorMode(TRTCCloudDef.TRTC_GSENSOR_MODE_DISABLE);         // 关闭重力感应
        TRTCCloudDef.TRTCRenderParams renderParams = new TRTCCloudDef.TRTCRenderParams();
        renderParams.rotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_90;
        mTRTCCloud.setLocalRenderParams(renderParams);                             // 矫正本地旋转角度
        mTRTCCloud.setVideoEncoderRotation(TRTCCloudDef.TRTC_VIDEO_ROTATION_180);  // 矫正远端旋转角度
    } else if (Surface.ROTATION_90 == rotation) {
        // 常规设备横屏下角度,不做处理
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
实时音视频
实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档