1
我有一个应用程序可以在Android中录制视频,而不会在大多数手机和API级别出现问题。至创纪录的代码如下:录制视频的问题
recorder.setCamera(cam);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
if(Integer.valueOf(android.os.Build.VERSION.SDK) > 7){
CamcorderProfile mProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_LOW);
recorder.setProfile(mProfile);
}else{
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
}
recorder.setOutputFile(path);
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
recorder.start();
对于一个未知的原因,当这个代码执行的摩托罗拉型号MB632运行的是Android 2.3.5,我得到的logcat的以下错误:
OMXCodec : Buffer count/size less than minimum required
OMXCodec : Allocate Buffer failed - error = -2147483648
Media Recorder: start failed: -12
Camera : Error 100
Application : frameworks/base/media/libstagefright/MPEG4Writer.cpp:2966 mCodecSpecificData
而且返回一个异常。我尝试过所有类型的组合,并且缓冲区大小似乎不是您可以从API函数更改的东西。
这可能帮助:http://stackoverflow.com/questions/6532554/trouble-trying-to-get-mediarecorder-to-work-correctly,看到评论 – Caner
我读了,不过没有帮助许多。似乎有些相机不遵循正常的编程。我甚至已经通过API级别将其分解了,正如你所看到的,但没有运气。 –