android camere前摄预览镜像

在Android中,前摄相机预览默认带有镜像效果,但当某些SOC平台的camera HAL仅支持单摄或双摄时,用于后摄的sensor需要禁用这一镜像设置。本文介绍了如何在API 1+及HAL 1上,通过setDisplayOrientation API以及在camera v2 API和HAL 3上,通过mDevice->setStreamTransform在创建流时调整预览镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android camere前摄预览镜像

一、背景

camera前摄预览镜像是android的原生设计,但随android手机安置的camera模组越来越多,从后置双摄到三摄…,但有些SOC平台的camera HAL设计可能依然只支持单摄或双摄,这时为了实现后置双摄或三摄的方案,需要其中一颗sensor用前摄的配置,但作为后摄来用,所以我们就需要去掉前摄中的预览镜像设定。

二、代码具体实现

在api1 + HAL1上,framwork camera.java中会有setDisplayOrientation的api提供给app去使用,它最终是能过调用HAL的setPreviewTransform来实现预览镜像的。

if (cmd == CAMERA_CMD_SET_DISPLAY_ORIENTATION) {
    // Mirror the preview if the camera is front-facing.
    orientation = getOrientation(arg1, mCameraFacing == CAMERA_FACING_FRONT);
    if (orientation == -1) return BAD_VALUE;
    if (mOrientation != orientation) {
        mOrientation = orientation;
        if (mPreviewWindow != 0) {
            mHardware->setPreviewTransform(mOrientation);
        }
    }
    return OK;
}

camera v2 api + HAL3上已没api提供给app使用,它是在cameradeviceclient中创建stream时通过mDevice->setStreamTransform来实现预览的镜像的。
android/fr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值