如何在录制Android时获取视频的持续时间

时间:2014-06-05 08:21:36

标签: android video record duration

我遇到了问题。我希望在录制视频时获得视频的持续时间。 我可以通过代码

完成视频的持续时间
MediaPlayer mp = MediaPlayer.create(mContext, Uri.parse(video));
if(mp == null)
    return -1;
int duration = mp.getDuration();
mp.release();

但我希望每次录制视频以更新到进度条时都能获得持续时间。 希望你的回复!

1 个答案:

答案 0 :(得分:1)

   private class PlaybackObserver extends Thread {

        public void run() {
            currentPosition = 0;
            try {
                while (!killObserverThread) {
                    Thread.sleep(1000);

                    currentPosition = (int) mediaPlayer.getCurrentPosition();

                    runOnUiThread(new Runnable() {
                        public void run() {

                                yourProgressBar.setProgress(currentPosition);


                        }
                    });
                }
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

   @Override
    protected void onDestroy() {

        super.onDestroy();

        killObserverThread = false;
    }
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();



        if (task == null || !task.isAlive()) {
            task = new PlaybackObserver();
            task.start();
        }

        startPlaying();

    }

为您的UiThread添加一个私有类来更新您的搜索栏/进度条。然后从onResume()

开始