2013-12-09 66 views
1

我必须录制分辨率为640x360的视频(或以某种方式转换为此大小)。 然后,我按照Android Developer的示例执行我自己的相机活动,以便能够设置我想要的设置。 但是,当我按下按钮开始录制视频,我得到这个异常:RuntimeException在自定义分辨率下在Android上录制视频

12-09 19:30:18.679: E/MediaRecorder(8614): start failed: -19 
12-09 19:30:36.476: E/AndroidRuntime(8614): FATAL EXCEPTION: main 
12-09 19:30:36.476: E/AndroidRuntime(8614): java.lang.RuntimeException: start failed. 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at android.media.MediaRecorder.start(Native Method) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at com.autosonvideo.CameraManagerActivity$3.onClick(CameraManagerActivity.java:99) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at android.view.View.performClick(View.java:3558) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at android.view.View$PerformClick.run(View.java:14157) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at android.os.Handler.handleCallback(Handler.java:605) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at android.os.Handler.dispatchMessage(Handler.java:92) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at android.os.Looper.loop(Looper.java:137) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at android.app.ActivityThread.main(ActivityThread.java:4514) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at java.lang.reflect.Method.invoke(Method.java:511) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
12-09 19:30:36.476: E/AndroidRuntime(8614):  at dalvik.system.NativeStart.main(Native Method) 

然后,我发现这是问题:

mMediaRecorder.setVideoSize(640,360); 

如果我将其更改为:

mMediaRecorder.setVideoSize(640,480); 

然后,它工作正常。

但我需要一个640x360的视频。有没有办法做到这一点?或者将视频从1280x720“调整”到640x360的方式?

它将在Android 4.0或更高版本上运行。

提前致谢!

回答

1

您不能选择任意分辨率 - 它必须是相机硬件支持的分辨率。您可以从Camera.Parameters找到相机分辨率。

Android没有设计用于将视频转码为不同分辨率的设备。欢迎您探索第三方选项,例如ffmpeg

+0

我试图摆脱NDK,但是...因为这里有这个选项...在这里我去...谢谢! –

相关问题