gpt4 book ai didi

java - Android:如果我继续按后退按钮并再次启动应用程序,Mediaplayer 会播放多次

转载 作者:行者123 更新时间:2023-12-01 15:32:24 24 4
gpt4 key购买 nike

当我播放歌曲并按返回按钮返回首页时,音乐会继续播放。当我再次启动应用程序时,音乐播放两次。我认为是 onResume 方法,因为我注释掉了该方法,问题就停止了。如何让 onResume 正常工作?我尝试在 onResume 中使用 if(backgroundMusic.isplaying()) ,但是当我从另一个 Activity 恢复时应用程序崩溃。我究竟做错了什么?

//global mediaplayer
MediaPlayer backgroundMusic;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loadBackgroundMusic();

}

private void loadBackgroundMusic() {

//load mp3 into object and start it
backgroundMusic = MediaPlayer.create(this,R.raw.backgrounmusic);
backgroundMusic.setLooping(true);
backgroundMusic.start();

}
@Override
protected void onPause() {
super.onPause();
backgroundMusic.release();

}

@Override
protected void onResume() {
super.onResume();
loadBackgroundMusic();

}

@Override
protected void onStop() {
super.onStop();
backgroundMusic.release();
}

最佳答案

我不太确定你想要的行为。在我看来,它是以下两个之一:

  1. 仅当我的 Activity 可见时才播放音乐

    如果是这种情况,您应该仔细查看 Activity Lifecycle 的文档。例如,这将告诉您 onResume() 也将在第一次创建 Activity 时被调用。

    因此,解决方案是在 onResume() 中开始播放音乐,并在 onPause() 或类似方法中停止。

  2. 开始我的 Activity 一次后,即使我返回主屏幕也应该播放音乐

    在这种情况下,您确实想要 Service

关于java - Android:如果我继续按后退按钮并再次启动应用程序,Mediaplayer 会播放多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9420100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com