0

我正在开发一个应用程序,我需要通过单击预定义长度的按钮来录制视频,例如 15 秒。15 秒后,我想自动重置 MediaRecorder 而无需手动干预 我的代码在这里。

public void initMediaRecorder(){ 

mRecorder = new MediaRecorder(); 

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); 
mRecorder.setPreviewDisplay(mHolder.getSurface()); 
mRecorder.setMaxDuration(15000);
mRecorder.setOutputfile("blahblah On SD card")
mRecorder.setOutputFile(mOutputFile); 

} 

现在录制已完成,但 15 秒后我的 UI 冻结,我需要手动重置录音机。我需要知道在 15 秒时间完成后我应该重置记录器的事件。

4

1 回答 1

0

我找到了解决方案。也许这个答案会对某人有所帮助。

使用以下监听器

recorder.setOnInfoListener(new medialistener());

 class medialistener implements MediaRecorder.OnInfoListener {     
         public void onInfo(MediaRecorder recorder, int what, int extra)
         { 
             if(what==MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED)
             {

             }

        // Log.i("video test", "Video Info: "+what+", "+extra);  
         } 
         } 

干杯。

于 2012-09-11T06:10:01.827 回答