Android Camerax 旋转角度(setTargetRotation)无效?

ops/2024/10/15 18:50:42/
val preview : Preview = Preview.Builder().setTargetRotation(Surface.ROTATION_270).build()

如果setTargetRotation无效哪基本上就是你没指定实现模式。

// viewFinder is a PreviewView instance
viewFinder.implementationMode = PreviewView.ImplementationMode.COMPATIBLE

其实在官方Camerax使用指南就有说明的

Additional controls for PreviewView
Implementation mode
PreviewView can use one of the following modes to render a preview stream onto the target View:

PERFORMANCE is the default mode. PreviewView uses a SurfaceView to display the video stream, but falls back to a TextureView in certain cases. SurfaceView has a dedicated drawing surface, which has a better chance of being implemented with a hardware overlay by the internal hardware compositor, especially when there are no other UI elements (like buttons) on top of the preview video. By rendering with a hardware overlay, video frames avoid a GPU path, which can reduce platform power consumption and latency.

COMPATIBLE mode. In this mode, PreviewView uses a TextureView which, unlike SurfaceView, does not have a dedicated drawing surface. As a result, video renders with blending so that it can be displayed. During this extra step, the application can perform additional processing, such as scaling and rotating videos without restriction.

PreviewView 的其他控件

实现模式
PreviewView 可以使用以下模式之一将预览流渲染到目标 View 上:

PERFORMANCE 是默认模式。PreviewView 会使用 SurfaceView 显示视频串流,但在某些情况下会回退为使用 TextureView。SurfaceView 具有专用的绘图界面,该对象更有可能通过内部硬件合成器实现硬件叠加层,尤其是当预览视频上面没有其他界面元素(如按钮)时。通过使用硬件叠加层进行渲染,视频帧会避开 GPU 路径,从而能降低平台功耗并缩短延迟时间。

COMPATIBLE 模式。在此模式下,PreviewView 会使用 TextureView;不同于 SurfaceView,该对象没有专用的绘图表面。因此,视频要通过混合渲染,才能显示。在这个额外的步骤中,应用可以执行额外的处理工作,例如不受限制地缩放和旋转视频。

 


http://www.ppmy.cn/ops/42610.html

相关文章

Linux 内核开发 27 POSIX共享内存

Linux 内核开发 27 POSIX共享内存 1.定义 支持 POSIX 共享内存,linux 内核使用的是通过一个名为tmpfs的特殊文件系统来实现内存共享,并且将文件系统挂载在rootfs的/dev/shm上。 这种实现与linux 文件系统api 相互一致,所以每个文件都有inod…

SpringBoot(八)之JdbcTemplate

SpringBoot(八)之JdbcTemplate 文章目录 SpringBoot(八)之JdbcTemplate1.添加依赖项:2. 配置数据库连接3.创建表信息4. 创建数据模型5. 创建 Repository6.测试,创建TestController spring-boot-starter-jdbc 是 Spring…

每天一个数据分析题(三百三十五)

下图表中,适用于展示连续型数据的数据分布情况的是() A. 条形图 B. 饼图 C. 直方图 D. 箱线图 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案

深度学习之基于YoloV5钢材微小缺陷检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与目标 在钢材生产过程中,由于各种因素,钢材表面可能会出现微小缺陷&#xff…

视频批量剪辑神器大揭秘:一键删减片头片尾,高效打造精彩视频内容!

在数字化时代的浪潮中,视频已经成为人们传递信息、分享生活的重要载体。无论是制作一部精美的宣传片,还是剪辑一段有趣的短视频,视频时长都是至关重要的因素。然而,很多视频创作者在调整视频时长时遇到了困难,耗费了大…

YOLOv5/v7 引入 RepVGG 重参数化模块

YOLOv5/v7 中引入 RepVGG 重参数化模块 1. 介绍 RepVGG 是由 Megvii Research 团队于 2021 年提出的深度卷积神经网络架构,它通过重参数化 VGGNet 架构,显著提高了模型的性能和效率。RepVGG 架构在 YOLOv5 和 YOLOv7 等目标检测模型中得到了广泛应用&a…

Java18新特性

1 Java 18 引入了一些新特性和改进,旨在提高开发效率、性能和语言的易用性。以下是其中几个值得注意的新特性: 默认使用 UTF-8 (JEP 400): Java 18 默认字符集现在是 UTF-8,这简化了文本处理并避免了以前因地区设置不同而可能导致的乱码问题…

【产品经理】输出

引言:        在最近频繁的产品管理职位面试中,我深刻体会到了作为产品经理需要的不仅仅是对市场和技术的敏锐洞察,更多的是在复杂多变的环境中,如何运用沟通、领导力和决策能力来引导产品从概念走向市场。这一系列博客将分享…