2016-08-18 87 views
-2

我正在開發Android媒體記錄應用程序,但某些設備具有不同的屏幕錄製分辨率。它總是讓我崩潰。Android:設置錄製視頻大小的正確方法是什麼?

我正式使用這個代碼從谷歌 https://github.com/googlesamples/android-MediaRecorder/blob/master/Application/src/main/java/com/example/android/mediarecorder/MainActivity.java

它不工作也對索尼的Xperia Z2 D6503

後,我研究這個代碼

public static Camera.Size getOptimalVideoSize(List<Camera.Size> supportedVideoSizes, 
                List<Camera.Size> previewSizes, int w, int h) 

不能正常工作,因爲它將導致大小與1280x720

和日誌說

08-18 08:30:12.367 13251 13251 D MediaRecorder: Using Profile 0 
08-18 08:30:12.367 13251 13251 D CameraTexture: vidsize = 720 : 1280 

08-18 08:30:12.369 339 1370 W ServiceManager: Permission failure: com.sonyericsson.permission.CAMERA_EXTENDED from uid=19621 pid=13251 
08-18 08:30:12.370 339 1370 W ServiceManager: Permission failure: com.sonyericsson.permission.CAMERA_EXTENDED from uid=19621 pid=13251 
08-18 08:30:12.377 1478 1478 I art  : Explicit concurrent mark sweep GC freed 21(1200B) AllocSpace objects, 0(0B) LOS objects, 40% free, 12MB/21MB, paused 806us total 23.539ms 
08-18 08:30:12.390 13251 13251 E MediaRecorder: Starting Record 
08-18 08:30:12.391 339 974 W StagefrightRecorder: Intended video encoding frame width (1280) is too large and will be set to (800) 
08-18 08:30:12.392 339 974 W StagefrightRecorder: Intended video encoding frame height (720) is too large and will be set to (480) 
08-18 08:30:12.393 339 974 E CameraSource: Video dimension (800x480) is unsupported 
08-18 08:30:12.394 13251 13251 E MediaRecorder: start failed: -19 

我不知道如何正確創建可用於所有Android設備的媒體錄像機。有沒有這方面的參考?

+0

什麼* CamcorderProfile *? – N0un

+0

在https://github.com/googlesamples/android-MediaRecorder/blob/master/Application/src/main/java/com/example/android/mediarecorder/MainActivity.java 確實它有CamcorderProfile,但爲什麼仍然給我錯誤? – user965347

+0

索尼Xperia Z2 D6503不是Android API 21又名棒棒糖其仍然kitkat – user965347

回答

0

如果您唯一的興趣是API 21+,您可以使用getVideoCapabilities()方法。

CamcorderProfile class自API 8以來一直存在,但沒有那麼有用。

如果一切都失敗了,請使用試驗和錯誤,測試每個所需的分辨率並標記那些不起作用的分辨率。

(這是here

編輯: 隨着CamcorderProfile你應該用你的情況QUALITY_HIGH(我想讀你的代碼示例)

+0

在https://github.com/googlesamples/android-MediaRecorder/blob/master/Application/src/main/java/com/example/android/mediarecorder /MainActivity.java 行155確實有CamcorderProfile,但仍然給我錯誤,,是否應該爲android只發生錯誤,以獲得支持的分辨率? – user965347

+0

索尼Xperia Z2 D6503不是Android API 21又名棒棒糖其仍然kitkat – user965347

+0

好吧,調用'CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)'''後''profile.videoFrameWidth/Height'中的值是什麼? – N0un

相關問題