gpt4 book ai didi

android - 在不同的 Android Activity 中暂停主要背景音乐

转载 作者:行者123 更新时间:2023-11-29 21:40:31 25 4
gpt4 key购买 nike

所以我正在开发一款安卓游戏。我的主要 Activity 或介绍 Activity 有游戏的背景音乐。总体来说是整个游戏的主要背景音乐。所以我让音乐继续播放:

 private void startBgSound() {
// TODO Auto-generated method stub
//int soundFile = R.raw.backgroundmusic;
//AssetFileDescriptor afd = getResources().openRawResourceFd(soundFile);

bgsound = new MediaPlayer();
bgsound.reset();
bgsound = MediaPlayer.create(this, R.raw.backgroundmusic);

bgsound.setLooping(true);
bgsound.setVolume(100, 100);
bgsound.start();
}

通过将循环设置为真。当用户单击播放按钮(仍在主 Activity 上)时,下一个 Activity 位于主 Activity 之上。但是在我的第二个 Activity 中,我在那里放了一个暂停按钮,所以当用户点击它时,背景音乐也应该暂停。

对于如何做到这一点,您有什么聪明的想法吗?我被这个问题困住了。所以,如果你能提供帮助,我将不胜感激。谢谢。

最佳答案

在我的游戏中,我使用静态类处理音乐。当您开始播放音乐时,只需为其提供上下文,您就可以在代码中的任何位置停止音乐。

只要确保在用户离开或打开游戏时重置类,因为静态类可能会继续存在,即使游戏已关闭也是如此。

这是一个例子:

import android.content.Context;
import android.media.MediaPlayer;

public class SoundHandler {
private static MediaPlayer backgroundMusic;
private static Context context;

private static boolean isMuted = false;

public static void setContext(Context cont){
context = cont;
}

public static void playMusic(int resource){
if(backgroundMusic != null) backgroundMusic.reset();

try{
backgroundMusic = MediaPlayer.create(context, resource);

backgroundMusic.setLooping(true);
backgroundMusic.setVolume(100, 100);

if(!isMuted){
backgroundMusic.start();
}
} catch (NullPointerException e){
//Creating MediaPlayer failed. This happens randomly without any clear reasons.
e.printStackTrace();
}
}

public static void setMuted(boolean muted){
if(backgroundMusic != null){
if(muted){
if(backgroundMusic.isPlaying()){
backgroundMusic.stop();
isMuted = true;
}
} else {
if(!backgroundMusic.isPlaying()){
backgroundMusic.start();
isMuted = false;
}
}
}
}

public static void quit(){
if(backgroundMusic != null){
backgroundMusic.release();
}
}
}

请记住在 onCreate() 中设置上下文并在 onDestroy() 中运行 quit() 函数。

关于android - 在不同的 Android Activity 中暂停主要背景音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17252444/

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