2010-07-12 11 views

回答

1

這是由OpenCore在內部處理的,達到最大持續時間後的記錄器狀態未初始化,因爲它稱爲stop()。您再次安裝錄音機以進一步使用它。

+0

問題是我的應用程序退出(計時器到期後屏幕一片空白)。這不應該發生。它應該正常停止錄製並返回到預覽狀態(在按下記錄之前的狀態)。那可能嗎? 也有可能,自己處理它在onInfo 如果(什麼== MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED){我可以調用我自己的函數,調用recorder.stop()在這裏? } – Namratha 2010-07-12 10:18:09

+0

我嘗試調用我自己的函數,就像我之前提到的一樣,但它的崩潰方式與之前一樣 – Namratha 2010-07-12 10:18:31

+0

上面描述的是應該發生的事情,但根據我的經驗,實際上並非如此。 – vanevery 2010-12-06 01:01:11

34

我發現我必須實現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(); 
     } 
    } 
} 
+7

它不要忘記** recorder.setOnInfoListener(本)** – 2013-01-30 14:29:46

+2

或使用匿名類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