Java 如何在Android中播放MediaRecorder中的视频
我想开发一个屏幕记录器应用程序 我开发了这个,我可以从屏幕上录制,但是当我想播放这个视频时,停止录制后,向我显示以下消息: 无法播放视频。不支持的文件类型 对于录制屏幕,我使用了MediaProjectionManager、MediaProjection和MediaRecorder 我的代码:Java 如何在Android中播放MediaRecorder中的视频,java,android,android-mediarecorder,android-video-player,Java,Android,Android Mediarecorder,Android Video Player,我想开发一个屏幕记录器应用程序 我开发了这个,我可以从屏幕上录制,但是当我想播放这个视频时,停止录制后,向我显示以下消息: 无法播放视频。不支持的文件类型 对于录制屏幕,我使用了MediaProjectionManager、MediaProjection和MediaRecorder 我的代码: 为什么不播放我录制的视频?我如何修复它?您的视频文件大小是否不超过0字节?@RajasekaranM,不,我的朋友,此文件大小为40kb,正在您设备的普通播放器中播放?您是否收到任何错误代码,请尝试在您的
为什么不播放我录制的视频?我如何修复它?您的视频文件大小是否不超过0字节?@RajasekaranM,不,我的朋友,此文件大小为40kb,正在您设备的普通播放器中播放?您是否收到任何错误代码,请尝试在您的应用程序中播放视频?@RajasekaranM,是的,我使用默认播放器播放此文件,并且不会在应用程序中显示任何错误!
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void initRecorder() {
try {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
videoUri = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
+ new StringBuilder("/Rec_").append(new SimpleDateFormat("dd-MM-yyyy-hh-mm-ss").format(new Date()))
.append(".mp4").toString();
mediaRecorder.setOutputFile(videoUri);
mediaRecorder.setVideoSize(DISPLAY_WIDTH, DISPLAY_HEIGHT);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setVideoEncodingBitRate(500 * 1000);
mediaRecorder.setVideoFrameRate(30);
int rotation = getWindowManager().getDefaultDisplay().getRotation();
int orientation = ORIENTATIONS.get(rotation + 90);
mediaRecorder.setOrientationHint(orientation);
mediaRecorder.prepare();
} catch (Exception e) {
}
}