我正在尝试使用
Android中的MediaRecorder为我的应用添加视频录制功能,但生成的视频看起来已损坏绿线(音频很好).以下代码是我用来初始化MediaRecorder对象的代码:
mMediaRecorder = new MediaRecorder();
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setOutputFile(Utility.CAPTURE_VIDEO_FILENAME);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
mMediaRecorder.setMaxDuration(60000);
mMediaRecorder.setVideoFrameRate(20);
mMediaRecorder.setMaxFileSize(5000000);
mMediaRecorder.setVideoSize(352, 288);
mMediaRecorder.setPreviewDisplay(mPreview.mHolder.getSurface());
mMediaRecorder.prepare();
mMediaRecorder.start();
我已经看过了建议here和here,但它们似乎没有帮助我的事业.但我确实认为它可能与不正确的视频大小有关.所以我的问题是:在使用API级别7时,有没有什么好方法可以获得兼容的视频大小?据我所知,我可以使用CamcorderProfile,如果我在API级别8,但7.
最佳答案 设备中的视频大小等于预览大小.您必须先检查您设置的视频大小是否可用.不同设备中的视频大小可能不同.因此,首先使用
getSupportedPreviewSizes ()检查可用的预览大小,然后设置视频大小.如果视频大小不正确,则会出现绿线.