Android MediaPlayer在将数据源设置为URL后未调用OnPreparedListener
我正在使用媒体播放器从URL播放mp3。但在我将URL设置为数据源后,我的媒体播放器未调用PreparedListener。我调用了PrepareAsync()。URL正在浏览器中工作。我没有收到任何错误,所以请帮助我Android MediaPlayer在将数据源设置为URL后未调用OnPreparedListener,android,android-mediaplayer,Android,Android Mediaplayer,我正在使用媒体播放器从URL播放mp3。但在我将URL设置为数据源后,我的媒体播放器未调用PreparedListener。我调用了PrepareAsync()。URL正在浏览器中工作。我没有收到任何错误,所以请帮助我 这就是我设置liseners的方式。我实现了所有这些 mediaPlayer.setOnCompletionListener(this); mediaPlayer.setOnErrorListener(this); mediaPlayer.setOnPrepar
这就是我设置liseners的方式。我实现了所有这些
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setOnErrorListener(this);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.setOnInfoListener(this);
mediaPlayer.setOnBufferingUpdateListener(this);
这是我的听众
//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;
}
这是我的听众
@Override
public void onPrepared(MediaPlayer mp) {
//Invoked when the media source is ready for playback.
startMedia();
}
通过使用ExoAudioPlayer,我解决了这个问题。不调用OnPreparedListner意味着onPrepared没有被调用。您需要先设置PreparedListner。你在这么做吗?给我们看一点代码。要获取错误,请使用SetOneErrorListener,如果出现错误,您将在onError上获得错误。mediaPlayer.setOnCompletionListener(此);mediaPlayer.setOneErrorListener(此);mediaPlayer.setOnPreparedListener(这个);mediaPlayer.setOnInfo侦听器(此);mediaPlayer.setOnBufferingUpdateListener(这个);这是我设置侦听器的方式。请使用exomedia库从url播放音频