簡體   English   中英

Android:onPreviewFrame從未在沒有SurfaceView的情況下調用

[英]Android: onPreviewFrame never called without SurfaceView

在某些設備上,如果沒有設置SurfaceView來顯示攝像頭預覽,則不會調用onPreviewFrame 但是,我在服務中處理相機,所以我無法設置SurfaceView但我不想要有可見的預覽。

如何才能做到這一點? 我可以通過編程方式創建SurfaceView並使用Camera::setPreviewDisplay嗎?

這一定是否可能?

它適用於幾乎所有沒有SurfaceView手機,但不適用於HTC One X和Google Nexus One ......

根據這個問題 ,在代碼中創建SurfaceView可以正常工作。 雖然我認為你不能通過服務創建它。

另一種方法是在RelativeLayout創建一個1px-1px的SurfaceView並將其隱藏在其上面的其他視圖中。 (能見度應該仍然是VISIBLE )。 我們將這個技巧用於Path相機UI,我們通過OpenGL渲染預覽緩沖區,它工作正常。

根據配置簡單的文檔,可以顯示可見和顯示的表面視圖以激活相機預覽。 但它可能會被重疊

從API 11開始,您可以使用SurfaceTexture而不是SurfaceView來從相機獲取幀。 然后,不要使用Camera.setPreviewDisplay ,只需使用Camera.setPreviewTexture

這個答案以及這一點都討論了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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