Search code examples
androidandroid-mediaplayer

MediaPlayer not calling OnPreparedListener after setting DataSource as URL


I am using media player to play a mp3 from URL.But my media player not calling OnPreparedListener after I am setting a URL as my data source. And I called PrepareAsync(). The URL is working in the browser. And I am not getting any errors.So please help me.

This is the way I am setting liseners. And I implemented all.

 mediaPlayer.setOnCompletionListener(this);
    mediaPlayer.setOnErrorListener(this);
    mediaPlayer.setOnPreparedListener(this);
    mediaPlayer.setOnInfoListener(this);
    mediaPlayer.setOnBufferingUpdateListener(this);

And this is my ErrorListener

//Handle errors
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        //Invoked when there has been an error during an asynchronous operation.
        switch (what) {
            case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
                Log.d("MediaPlayer Error", "MEDIA ERROR NOT VALID FOR PROGRESSIVE PLAYBACK " + extra);
                break;
            case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
                Log.d("MediaPlayer Error", "MEDIA ERROR SERVER DIED " + extra);
                break;
            case MediaPlayer.MEDIA_ERROR_UNKNOWN:
                Log.d("MediaPlayer Error", "MEDIA ERROR UNKNOWN " + extra);
                break;
        }
        return false;
    }

And this is my OnPreparedListener

 @Override
    public void onPrepared(MediaPlayer mp) {
        //Invoked when the media source is ready for playback.
        startMedia();
    }

Solution

  • By using ExoAudioPlayer I fixed the Issue.