我已经开发了一个Android应用程序来录制视频。该应用程序可以在我的手机上顺利运行,录制的视频可以与手机一起在其他设备上播放。但是,我必须在Android-X86映像上安装此应用程序。 该设备是Lenevo Ideapad 330 。应用程序运行非常平稳,可以录制视频。但是,当我尝试在同一(和其他)设备上播放录制的视频时,它显示-视频无法播放。文件大小足够大。
以下是Media Recorder的源代码-
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
if (mNextVideoAbsolutePath == null || mNextVideoAbsolutePath.isEmpty()) {
mNextVideoAbsolutePath = getVideoFilePath(getActivity());
}
mMediaRecorder.setOutputFile(mNextVideoAbsolutePath);
mMediaRecorder.setVideoEncodingBitRate(10000000);
mMediaRecorder.setVideoFrameRate(30);
//mMediaRecorder.setVideoEncodingBitRate(1000000);
//mMediaRecorder.setVideoFrameRate(18);
mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
//mMediaRecorder.setVideoSize(1280, 720);
//mMediaRecorder.setVideoFrameRate(30);
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(DEFAULT_ORIENTATIONS.get(rotation));
break;
case SENSOR_ORIENTATION_INVERSE_DEGREES:
mMediaRecorder.setOrientationHint(INVERSE_ORIENTATIONS.get(rotation));
break;
}
mMediaRecorder.prepare();
其他方法可能没有问题,因为电话中的视频录制工作正常。
我想知道问题是否与输出格式或VideoEncoder有关。我尝试了几种编码器,包括3GPP,VP8,H263。还没有运气。
我们非常感谢您的帮助。谢谢。