[英]Rotating the preview with CameraX
我有一个带有旋转相机的专有设备,它不会向操作系统报告其旋转情况。
我们将CameraX
与PreviewView
一起使用,我将图像旋转 90 度并进行镜像。
有没有一种有效的方法来旋转预览?
PreviewView
当然不起作用,它只是修改了 ViewPort,因为它不会旋转表面。ViewFinder
库 - 输出位图但不连接到Preview
(或者有人对此有解决方案吗?)。 没有setSurfaceProvider
,什么都不会清空帧管道,也不会显示任何内容。我们目前使用位图(通过分析器),然后我们显示位图。 那很丑,而且 CPU 很贵。
Camera2 是唯一可以很好地旋转预览的方法吗? Camera2 无论如何都会做位图,但它可能会在硬件上进行 YUV 转换。
像这里这样的解决方案不起作用。 设置预览的目标方向只会修改比例以补偿纵横比。 它实际上并不旋转。 这也不起作用,因为它已经过时并且不再有效。
Preview#setTargetRotation
API 应该可以工作: https://developer.android.com/reference/androidx/camera/core/Preview#setTargetRotation(int)
要使此 API 正常工作,您的PreviewView
必须处于COMPATIBLE
模式:
PreviewView#setImplementationMode(ImplementationMode.COMPATIBLE);
您可以在 GitHub 上找到完整的示例: https ://github.com/androidx/androidx/blob/androidx-main/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/PreviewViewFragment .java
我上传了预览旋转的屏幕记录。 如果这不是您想要的结果,请看一下并告诉我: https ://github.com/xizhang/public-files/blob/main/stackoverflow74798791/preview_rotation.mp4
也可以下载APK自己测试: https ://github.com/xizhang/public-files/blob/main/stackoverflow74798791/camera-testapp-view-debug.apk
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.