我想使用Android中我自己的应用程序拍摄的mediaPlayer
来播放视频。
我以这种方式设置mediaPlayer
:
private void setUpMediaRecorder() throws IOException {
final Activity activity = getActivity();
if (null == activity) {
return;
}
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
if (mNextVideoAbsolutePath == null || mNextVideoAbsolutePath.isEmpty()) {
mNextVideoAbsolutePath = getVideoFilePath();
}
mMediaRecorder.setOutputFile(mNextVideoAbsolutePath);
mMediaRecorder.setVideoEncodingBitRate(10000000);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
switch (mSensorOrientation) {
case SENSOR_ORIENTATION_DEFAULT_DEGREES:
mMediaRecorder.setOrientationHint(ORIENTATIONS.get(rotation));
break;
case SENSOR_ORIENTATION_INVERSE_DEGREES:
mMediaRecorder.setOrientationHint(INVERSE_ORIENTATIONS.get(rotation));
break;
}
mMediaRecorder.prepare();
}
private void stopRecordingVideo() {
mMediaRecorder.stop();
mMediaRecorder.reset();
}
return Environment.getExternalStorageDirectory() + "/"
+ time + ".mp4"; // path, where the video should be stored
当我想播放拍摄的视频时,我收到以下错误:This video cannot be played
你知道为什么那不起作用吗?我还尝试了Android-camera2video
示例,但代码也没有工作。
答案 0 :(得分:0)
从您的代码中看起来您正在使用时间+“。mp4”作为名称。
基于错误和行为,“时间”很可能包含一些字符,这些字符要么混淆路径解析(例如/),要么以某种方式混淆文件扩展名,可能是通过添加和额外的'。'例如。
如果您想将日期附加到文件名,那么您可以使用格式化程序将其变为“安全”格式,例如:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");