我正在为Android媒体记录开发应用程序,但有些设备有不同的屏幕录制分辨率。它总是让我崩溃。
它在索尼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设备上使用的mediarecorder。有什么参考吗?
答案 0 :(得分:0)
如果您唯一感兴趣的是API 21+,则可以使用 getVideoCapabilities()方法。
CamcorderProfile 类自API 8以来一直存在,但不太有用。
如果所有其他方法都失败了,请使用反复试验,测试每个所需的分辨率并标记不起作用的分辨率。
(这是here)
编辑: 使用 CamcorderProfile ,您应该在您的情况下使用 QUALITY_HIGH (我想阅读您的代码示例)