我创建了一个简单的应用程序,它有两个用于播放和停止歌曲的按钮。一切正常。
但是我希望它在应用程序运行时暂停播放歌曲当应用程序再次启动时暂停并恢复播放歌曲。
我试过:
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mp.start();
}
但这会在应用程序首次启动时自动启动歌曲。当您点击播放时,它还会弄乱应用程序、歌曲被破解和应用程序崩溃。
这是 onPause 和 onDestroy:
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mp.pause();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mp.stop();
mp.release();
} }
最佳答案
在 onResume()
方法中检查歌曲是否已经在播放,您不应该再次播放它。
所以现在你的 onResume 变成了
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (mp != null && mp.getCurrentPosition() > 0) {
mp.start();
}
}
这将解决您的崩溃问题。
现在是第二部分,如何从暂停的位置继续播放。
根据文档 MediaPlayer
类有两个方法 getCurrentPosition()
和 seekTo(int msec)
您可以使用 SharedPreferences
将 currentPosition 存储在 onPause()
方法和您的 onResume()
获取 SharedPreferences
和 seekTo(int msec)
的位置该位置,然后再次开始播放。
关于android - 如何正确onResume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25425360/