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

时间:2017-07-07 06:05:14

标签: android android-mediaplayer

我正在使用媒体播放器播放来自URL的mp3。但是在我将URL设置为我的数据源后,我的媒体播放器没有调用OnPreparedListener。我打电话给PrepareAsync()。该URL正在浏览器中工作。我没有收到任何错误。所以请帮助我。

这就是我设置liseners的方式。我实施了所有。

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

1 个答案:

答案 0 :(得分:0)

通过使用ExoAudioPlayer我修复了问题。