我有以下代码从网络播放mp3文件,这是行得通的,但是当我使用停止功能时,音频不会停止。任何人都可以指点我的资源,以了解更多关于此的信息,或告诉我我哪里出错了?谢谢。Android Mediaplayer不会停止
showAudio.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
if (!showAudio.getText().equals("Stop")) {
try {
String url = lblAudio.getText().toString();
if (url.length() > 2) {
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
mediaPlayer.start();
showAudio.setText("Stop");
}
} catch (Exception e) {
Toast.makeText(getBaseContext(), "Sorry, there was a problem playing audio.", Toast.LENGTH_SHORT).show();
}
} else {
try {
mediaPlayer.stop();
mediaPlayer.release();
} catch (Exception ex) {
ex.printStackTrace();
}
showAudio.setText("Audio");
}
}
});
谢谢。我已经改变了这一点,它似乎有一次工作(它会播放和停止,但如果我再次按播放,我得到一个IllegalStateException)。 – Kevin
非法状态异常是因为您正在释放播放器。查看[state diagram here](http://developer.android.com/reference/android/media/MediaPlayer.html)。在你正在调用'release'的地方调用'reset',并且由于你每次在'start'之前调用setDataSource'和'prepare',它都可以正常工作。实际完成播放器时调用'release',例如在'Activity'的'onStop'中。 – Dave