Search code examples
androidandroid-mediaplayerandroid-audiomanager

android: do something after playing audio file


i try to stream and play an audio file in my application. i use this code :

MediaPlayer player = new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource(url);
player.prepare();
player.start();

i want to know is it possible to detect when player finished playing ? i want to change a button color after player finished playing


Solution

  • Check out the setOnCompletionListener method:

    player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            Log.d(TAG, "Done playing!");
        }
    });
    

    You can actually set a ton of callbacks here. In addition to setOnCompletionListener, we have:

    • setOnBufferingUpdateListener
    • setOnErrorListener
    • setOnInfoListener
    • setOnPreparedListener
    • setOnSeekCompleteListener
    • setOnTimedMetaDataAvailableListener
    • setOnTimedTextListener
    • setOnVideoSizeChangedListener.