我一直在試圖讓自定義相機屏幕工作,但由於某種原因,下面的代碼似乎不工作。我最終得到一個RuntimeException
,由一個錯誤導致:setAudioSource called in an invalid state(4)
。MediaRecorder錯誤:setAudioSource處於無效狀態(4)
以下是有問題的代碼:
Preview.getRecorderInstance().setVideoSource(MediaRecorder.VideoSource.CAMERA);
Preview.getRecorderInstance().setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
Preview.getRecorderInstance().setAudioSource(MediaRecorder.AudioSource.MIC);
Preview.getRecorderInstance().setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
Preview.getRecorderInstance().setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
Preview.getRecorderInstance().setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath()
+ "/test" + System.currentTimeMillis() + ".mp4"
);
Preview.getRecorderInstance().prepare();
Preview.getRecorderInstance().start();
Preview.getRecorderInstance()
獲取單媒體記錄器綁在Preview
類(這是設計來顯示相機預覽的SurfaceView
的子類)。
我的權限: <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我會很感激任何幫助,因爲我沒有在這方面成氣候,我已經看了看計算器類似的問題。閱讀回覆後我無法解決問題。
感謝您的幫助!這消除了這個錯誤,但另一方面現在我得到一個錯誤,說'開始失敗:-19'。問題是當我開始記錄器時,我無法弄清楚爲什麼。 – adilipan
@adilipan:其他SO帖子顯示此錯誤可能與MediaRecorder.setVideoSize()設置的視頻大小有關。你是否在你的代碼中調用該方法? –
不,我根本沒有在我的代碼中調用該方法。 – adilipan