我目前正在研究一个项目,在这个项目中我必须创建一个小型安卓游戏。如果一切顺利,我的游戏或多或少会像游戏男孩的旧口袋妖怪游戏。
游戏是使用多个活动(初始屏幕、菜单、游戏视图、战斗视图等)构建的。现在我的大部分事情都在工作。但是有一件事情困扰着我,我周围的人无法给出明确的答案。
在游戏中,我有一个名为 MusicPlayer.java 的类。该类用于在大部分活动中播放背景音乐。现在我在活动的 oncreate 中初始化这个类,并将其设置为播放 res/raw 文件夹中的 .mp3 文件。当我开始一个不同的活动时,我从 MusicPlayer 调用 .close()。
public class MusicPlayer {
private MediaPlayer player;
public void Play(int songid, Context cont)
{
player = MediaPlayer.create(cont, songid);
try {
player.start();
}
catch (Exception e)
{
Log.d("MusicPlayer","Something wend wrong while starting the song!");
Log.d("ERROR",e.toString());
}
}
public void close()
{
if(player != null)
{
player.stop();
player.release();
player = null;
}
}
一遍又一遍地创建这个类感觉有点笨拙,它迫使我在每一项活动中开始一首新歌。我还注意到,当开始一项新活动时,旧活动会继续运行。如果我不调用 .close ,音乐将继续在下一个窗口中播放。有没有办法再次访问这个对象?例如调用改变/停止歌曲的方法?我已经对此进行了一些谷歌尝试,但我无法让对象随 Activity 一起移动。它不适合 .putExtras() ,我也无法创建它的 Parcelable。
是的,现在这是一个相当多的文字,我很抱歉......但是对我的项目的这种限制真的让我很烦恼,而且我对 android/java 编程的知识非常有限(我习惯于 .net,现在只在 java/android 中工作了一个月)它会有所改善,所以如果有人知道我应该研究的东西,那就太好了!