有没有人通过 MediaRecorder API 从三星 Galaxy Nexus(运行 4.3 - 最初尝试使用 4.2)录制 480x360 h264 视频成功?我能够以 640x480 录制,但一旦我将其更改为 480x360,MediaRecorder API 在调用 start() 时崩溃 - 错误为 -19。
这些是我的设置:
mCamera.unlock();
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setMaxDuration(300000); //5min
mTempFile = new File(getFilesDir(), AppManager.tempFileName);
mMediaRecorder.setOutputFile(mTempFile.getPath());
mMediaRecorder.setVideoEncodingBitRate(1048576); //1mb/s
mMediaRecorder.setVideoSize(480, 360);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setAudioEncodingBitRate(131072); //128kb/s
mMediaRecorder.setAudioSamplingRate(44100); //Hz/s
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mMediaRecorder.setMaxFileSize(104857600); //100mb
mMediaRecorder.prepare();
mMediaRecorder.start(); //<<<crashes here
关于为什么会崩溃的任何想法,例如它在运行 4.1 的廉价平板电脑上运行时?
任何帮助将不胜感激,谢谢!