OnePlus 5上MediaRecorder的持续时间错误以及少量三星型号

时间:2018-12-05 01:42:37

标签: android mediarecorder mp4parser

一旦我停止从MediaRecorder开始录制,它就不会在某些型号(OnePlus 5,三星的某些型号)上保存正确的持续时间。也尝试从外部播放器播放录制的文件。搜索栏显示10秒钟视频的总时长为5小时以上。这是我的设置方式:

File outputDir = mContext.getCacheDir();
try {
    mTempOutputFile = File.createTempFile("temp_mov", "mp4", outputDir);
} catch (IOException e) {}

mMediaRecorder = new MediaRecorder();
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setOutputFile(mTempOutputFile.getPath());
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setVideoEncodingBitRate(VIDEO_BIT_RATE);
mMediaRecorder.setVideoSize(VIDEO_WIDTH, VIDEO_HEIGHT);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mMediaRecorder.setAudioEncodingBitRate(44800);
mMediaRecorder.setOrientationHint(0);
try {
    mMediaRecorder.prepare();
} catch (IOException e) {}

我需要正确的持续时间,因为mp4Parser将其用于修整等。如何保存正确的工期?我可以以编程方式在元数据中输入记录的持续时间吗?

我已经提到了链接herehere,但这对我没有多大帮助,因为我需要做更多的工作,而不仅仅是增加持续时间,进一步使用mp4parser。

0 个答案:

没有答案