【发布时间】:2015-10-26 18:24:25
【问题描述】:
我正在开发音乐播放器应用程序,我正在使用 MediaPlayer 进行音乐流式传输。流媒体工作正常,但现在我想如果用户按下活动的后退按钮,那么它应该立即停止准备并释放媒体播放器。
目前,当它正在准备时,如果活动被破坏,那么我会像这样释放MediaPlayer,但是当它释放它时,它会挂起应用程序并显示 ANR。
@Override
protected void onDestroy() {
super.onDestroy();
if(mediaPlayer!=null) {
mediaPlayer.stop();
mediaPlayer.release();
}
}
我正在初始化MediaPlayer,如下所示
mediaPlayer = null;
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource("http://www.samisite.com/sound/cropShadesofGrayMonkees.mp3");
现在我想当它开始准备然后在我在onDestory 中发布时的后按,那么它不应该挂起应用程序并顺利释放媒体播放器。
请帮助我最好的方法是什么。提前致谢 mediaPlayer.prepareAsync();
【问题讨论】:
-
在停止并释放媒体播放器后尝试输入
super.onDestroy(); -
@Lalit Poptani 我只是使用它但无法正常工作。应用程序仍然挂起。
-
@John 你能清楚在哪里设置 mCancel 标志为真吗?
-
@John
onPrepared在准备好播放后被调用,但他可能在准备好播放之前或准备时正在寻找。
标签: android media-player