【问题标题】:How I can get medial player Duration and stop Chronometer?如何获取媒体播放器持续时间并停止 Chronometer?
【发布时间】:2016-09-13 12:58:30
【问题描述】:

我正在制作一个 android 简单的媒体播放器,用于播放音频文件并遇到问题。

我想停止 Chronometer 和媒体播放器

当当前播放文件的时长==文件总时长时..?

这是我的演示代码。

   private void playAudio() {
            mediaPlayer = new MediaPlayer();
            try {
                mediaPlayer.setDataSource(outputFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                mediaPlayer.prepare();
            } catch (IOException e) {
                e.printStackTrace();
            }
            mChronometer.setBase(SystemClock.elapsedRealtime());
            mChronometer.start();
            mediaPlayer.start();
            long totalDuration = mediaPlayer.getDuration();

            Log.i("MediaPlayer", String.valueOf(totalDuration));
        }

这是从 answer 添加的另一个代码。 我添加了listrner mediaPlayer.setOnCompletionListener(CompletionListener);

 MediaPlayer.OnCompletionListener CompletionListener = new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {

            long totalDuration = mp.getDuration();


        }
    };

【问题讨论】:

    标签: android android-studio android-mediaplayer avaudioplayer chronometer


    【解决方案1】:

    使用onCompletionListener 检查媒体播放器何时到达媒体文件的末尾。

        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
             // do your task
        }
    });
    

    更多参考请看此链接

    Media Player

    【讨论】:

    • 你能解释更多...吗?根据我的示例,我可以在 onCompletion 上做什么...?
    • 好吧completionListener方法将被称为当前播放文件的持续时间==文件的总持续时间。因此,在这种方法中,您可以编写您想要在该条件下执行的代码
    • 我不明白你的意思,兄弟,如果可以的话,我会更新我的代码,写一些代码示例
    • 是的,对不起,我明白了
    • 您不需要在 onCompletion 方法中获取持续时间。你只需要把你的计时器停在里面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多