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級別將其分解了,正如你所看到的,但沒有運氣。 –