Search code examples
androidandroid-studioandroid-mediaplayeravaudioplayerchronometer

How I can get medial player Duration and stop Chronometer?


I am making a android simple media player for playing a audio files and facing a problem with it.

I want to stop Chronometer and media player

When the current Duration of playing file == total duration of file..?

Here is my demo code.

   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));
        }

here is another code added from answer . i add the listrner mediaPlayer.setOnCompletionListener(CompletionListener);

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

            long totalDuration = mp.getDuration();


        }
    };

Solution

  • Use onCompletionListener to check when media player has reached end of the media file.

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

    For further reference see this link

    Media Player