簡體   English   中英

使用 CameraX 旋轉預覽

[英]Rotating the preview with CameraX

我有一個帶有旋轉相機的專有設備,它不會向操作系統報告其旋轉情況。

我們將CameraXPreviewView一起使用,我將圖像旋轉 90 度並進行鏡像。

有沒有一種有效的方法來旋轉預覽?

我們嘗試了:

  1. 設置相機、分析器、預覽的 setTargetOrientation。 沒有工作。
  2. 旋轉PreviewView當然不起作用,它只是修改了 ViewPort,因為它不會旋轉表面。
  3. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM