我在使用MediaRecorder录制视频时遇到问题。我需要在H264中注册视频并将其保存在扩展名为mp4的3gp容器中。我绝对需要这种视频格式,因为我将使用本机库打开它,我无法直接修改我自己的库。我使用以下代码,通常运行良好。但是使用另一台平板电脑,视频会被拍摄,但格式不一样(并且本机库停止工作)。
检查视频礼节我看到第二个视频有一个容器" Quicktime"而不是" 3gp":
在分析视频的字节时,我发现标题不是3gp的标题。
代码中有什么问题?
recorder = new MediaRecorder();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setVideoSize(320, 240);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
recordingPath = getApplicationContext().getFilesDir().getAbsolutePath()
+ "/" + System.currentMillis();
recorder.setOutputFile(recordingPath + ".mp4");
recorder.setMaxDuration(50000); // 50 seconds
recorder.setMaxFileSize(5000000); // Approximately 5 megabytes
recorder.setPreviewDisplay(recPreview.getHolder().getSurface());
try {
recorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
recorder.start();
似乎 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 没有生效
谢谢,Nico