如何停止或取消Mediaplayer.setOnPreparedListener窗体执行Android

如何停止或取消Mediaplayer.setOnPreparedListener窗体执行Android,android,android-mediaplayer,Android,Android Mediaplayer,即使调用stopaudio()方法,也会执行setOnPreparedListener中的代码。当我停止播放器时,如何停止或取消setOnPreparedListener的执行。先谢谢你 您可以重置侦听器实例,将null作为参数传递。例如 MediaPlayer player; protected void playaudio() { player = new MediaPlayer(); player.setOnPreparedListener(new MediaPlayer

即使调用
stopaudio()
方法,也会执行
setOnPreparedListener
中的代码。当我停止
播放器时,如何停止或取消setOnPreparedListener的执行。先谢谢你

您可以重置侦听器实例,将null作为参数传递。例如

MediaPlayer player;

protected void playaudio() {
    player = new MediaPlayer();
    player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {
            System.out.println("setOnPreparedListener executed");
            mediaPlayer.start();
        }
    });

    try {
        player.setDataSource(mContext,
                Uri.parse("http://radio-electron.ru:8000/96"));
        player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }
    player.prepareAsync();
}
public void stopaudio() {
    if (player != null) {
        player.stop();
        player.reset();
        player.release();
        player = null;
    }
}
打开
stopaudio()

player.setOnPreparedListener(null);