根據該文件會發生什麼,http://developer.android.com/reference/android/media/MediaRecorder.html#setMaxDuration(int)MediaRecorder.setMaxDuration(INT定時器)當計時器到期
計時器到期時錄製停止。
停止,他們的意思是它調用內部recorder.stop(),然後恢復調用recorder.start()之前的應用程序的狀態?
根據該文件會發生什麼,http://developer.android.com/reference/android/media/MediaRecorder.html#setMaxDuration(int)MediaRecorder.setMaxDuration(INT定時器)當計時器到期
計時器到期時錄製停止。
停止,他們的意思是它調用內部recorder.stop(),然後恢復調用recorder.start()之前的應用程序的狀態?
這是由OpenCore在內部處理的,達到最大持續時間後的記錄器狀態未初始化,因爲它稱爲stop()。您再次安裝錄音機以進一步使用它。
問題是我的應用程序退出(計時器到期後屏幕一片空白)。這不應該發生。它應該正常停止錄製並返回到預覽狀態(在按下記錄之前的狀態)。那可能嗎? 也有可能,自己處理它在onInfo 如果(什麼== MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED){我可以調用我自己的函數,調用recorder.stop()在這裏? } – Namratha 2010-07-12 10:18:09
我嘗試調用我自己的函數,就像我之前提到的一樣,但它的崩潰方式與之前一樣 – Namratha 2010-07-12 10:18:31
上面描述的是應該發生的事情,但根據我的經驗,實際上並非如此。 – vanevery 2010-12-06 01:01:11
我發現我必須實現MediaRecorder.OnInfoListener並手動停止錄製。完成此操作後,MediaRecorder會回到初始狀態,並且必須再次完成所有正常設置才能重新開始錄製。
public class VideoCapture extends Activity implements MediaRecorder.OnInfoListener {
public void startVideoRecording() {
// Normal MediaRecorder Setup
recorder.setMaxDuration(10000); // 10 seconds
recorder.setOnInfoListener(this);
}
public void onInfo(MediaRecorder mr, int what, int extra) {
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
Log.v("VIDEOCAPTURE","Maximum Duration Reached");
mr.stop();
}
}
}
它不要忘記** recorder.setOnInfoListener(本)** – 2013-01-30 14:29:46
或使用匿名類recorder.setOnInfoListener(新OnInfoListener(){ \t \t \t \t @覆蓋 \t \t \t \t公共無效onInfo(MediaRecorder先生是非常重要的,詮釋了什麼,整型附加){ \t \t \t \t \t如果(什麼== MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED){ \t \t \t \t \t \t mr.stop(); \t \t \t \t \t} \t \t \t \t} \t \t \t}); – 2014-09-16 09:10:30
你能找到解答你的問題嗎? – 2012-08-27 00:28:16