使用setMaxDuration进度条

时间:2012-08-10 14:43:10

标签: android progress-bar mediarecorder

我四处寻找,但没有找到答案。我使用MediaRecorder类和setMaxDuration(10000)方法录制视频。但是我想显示在这10秒的进度条中经过了多长时间。我只看到使用getDuration类和MediaPlayer类的示例。任何人都可以举例说明如何将MediaRecorderprogress bar一起使用吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

只需使用Timer

//fires once a second, decrease this to fire more frequently
private static final int TIMER_FREQ = 1000; 

//ProgressBar setup. You should do this in a way more tailored to your needs,
//but I've included it anyway
final ProgressBar progressBar = new ProgressBar(this); //where this is a Context
progressBar.setMax(10000);

Timer progressBarAdvancer = new Timer();
progressBarAdvancer.scheduleAtFixedRate(new TimerTask() {

        public void run() {
            progressBar.setProgress(progressBar.getProgress() + TIMER_FREQ);
        }
    },
    0, //Delay before first execution
    TIMER_FREQ); 

这将在录音的单独线程上操作progressBar,但它将在10秒内完成,此时您可以停止录音,完成等等。