2013-10-04 35 views
0

MediaRecorder允許設置持續時間和文件大小,但我還沒有弄清楚如何獲取回調事件進行處理。我已經得到了最多記錄,並通過這裏密切關注文檔運行:如何獲取MediaRecorder setMaxDuration回調?

http://developer.android.com/guide/topics/media/camera.html

我已經實現了MediaRecorder.OnInfoListener,這讓我猜會是聽了這兩個事件之一。

public class CameraActivity extends Activity implements MediaRecorder.OnInfoListener { 
    /* code here */ 
} 

我在持續增加我想mMediaRecorder.setMaxDuration(5000);

最後我已經把所需要的回調方法爲OnInfo監聽器,但它似乎永遠不會開火。

@Override 
public void onInfo(MediaRecorder arg0, int arg1, int arg2) { 
    Log.i("CALLBACK", "Response Code: " + arg1); 
} 
+0

的文檔'setMaxDuration'狀態之後你應該_「在setOutFormat()之後但在prepare()」_之前調用它。你在做那個嗎? – Michael

+0

我在準備之前設置它,但我沒有設置setOutputFormat。對於API 8之前的任何東西似乎都不需要。但是,我將它設置爲setProfile之後。 – Josh

回答

0

設置MediaRecoder聽者recorder.setOnInfoListener(this);實現MediaRecorder.OnInfoListener接口

爲了得到maxDuration和maxFileSize爲回調使用onInfo回調如下

@Override 
public void onInfo(MediaRecorder mr, int what, int extra) { 
    if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) { 

     Log.e("Maximum Duration Reached","Maximum Duration Reached"); 
     } 
    if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED) { 

     Log.e("Maximum File size Reached","Maximum File size Reached"); 
     }