android 除錯攝像機黑屏問題

小二陽發表於2018-01-23

最近在開發一個類似微信發表朋友圈的功能,其中有個拍攝短視訊的功能,DEMO上執行沒有問題,但是寫進專案一呼叫攝像機就黑屏,其他的UI圖確顯示出來了,很讓人奇怪。後來除錯才發現報了一個這樣的錯誤,A TextureView or a subclass can only be used with hardware acceleration enabled.(華為測試機是真坑,報錯一開始沒有日誌,這個問題我在別一篇文章中寫過了,這裡就不多說了)。

先說下解決方案吧:

在 application級別修改:

<application android:hardwareAccelerated="true"
 ...>
複製程式碼

在 activity 級別修改:

<activity android:hardwareAccelerated="true"
 />
複製程式碼

在 window 級別修改:

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
 WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
複製程式碼

我是因為這專案剛接手,前輩就是在application裡面給設定成了false,坑了我兩天,尷尬啊!

基本上如果你想讓你的TextureView進行硬體加速,你必須保證硬體加速在TextureView的上下文的一些級別上是可用的,硬體加速事實上使用TextureView進行託管:TextureView 僅僅可以在被硬體加速的視窗去使用. 在軟體中渲染時, TextureView什麼也不會做。

相關文章