将 DataSource 设置为 URL 后,MediaPlayer 未调用 OnPreparedListener

MediaPlayer not calling OnPreparedListener after setting DataSource as URL

我正在使用媒体播放器播放来自 URL.But 的 mp3,我的媒体播放器在将 URL 设置为数据源后未调用 OnPreparedListener。我调用了 PrepareAsync()。 URL 在浏览器中工作。我没有得到任何 errors.So 请帮助我。

这就是我设置监听器的方式。而我全部实现了。

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

这是我的 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;
    }

这是我的 OnPreparedListener

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

通过使用 ExoAudioPlayer,我解决了问题。