1

我四处寻找,但没有找到答案。我正在使用MediaRecorder类和setMaxDuration(10000)方法录制视频。但是,我想显示在这 10 秒的进度条中已经过去了多少时间。我只看到使用类的getDuration方法的例子MediaPlayer。谁能给我一个如何使用MediaRecorderwith的例子progress bar?非常感谢。

4

1 回答 1

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 秒内完成,此时您可以停止录制、完成等。

于 2012-08-10T15:15:10.170 回答