Android自定義相機拍攝黑屏
速記,備查。
1、需求場景
拍攝20秒 + 視訊質量不能太低 + 視訊大小不能超過5M;
2、方案
呼叫系統相機和自定義相機;
1、呼叫系統相機(不滿足需求)
視訊質量只能設定高(1)和低(0),高的話,拍出來的視訊太大;低的話,拍出來的視訊大小滿足,但是質量慘不忍睹;而且,即使設定了拍攝時常,很多手機的計數仍在繼續;
2、自定義相機
自定義相機,需要設定的引數很多,尤其是進行視訊拍攝。至於如何設定這些引數(SurfaceHolder、Camera、MediaRecorder等),網上的資料很多,可以自行百度。
3、遇到的問題
在設定拍攝視訊的解析度的時候,小米手機竟然卡死黑屏了,而且我再去用系統的相機,竟然也黑屏了。f**k,相機被玩死了。mediaRecorder.setVideoSize(videoWidth, videoHeight);
首先想到的是,自己設定的解析度不支援?那怎麼獲取支援的解析度呢?
List<Camera.Size> list = mCamera.getParameters().getSupportedPictureSizes();
在Camera的Api中,我們可以獲取其引數,進而通過getSupportPictureSizes()獲取一個支援的解析度的列表。從中挑選一個你感覺合適的解析度設定上就可以了。