我正在为我的学习项目工作,在这个项目中我必须创建一个小型的Android游戏。如果一切顺利的话,我的游戏看起来或多或少会像游戏男孩的旧口袋妖怪游戏一样。
使用多种活动(启动画面,菜单,游戏视图,战斗视图等)构建游戏。现在我有大部分工作。但有一件事困扰着我,我周围的人无法给出明确的答案。
在游戏中我有一个名为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,音乐会在下一个窗口继续播放。有没有办法再次访问此对象?例如,调用一个改变/停止歌曲的方法?我已经对此进行了一些谷歌尝试,但我无法使用活动来移动对象。它不适合.putExtras(),也不能创建它的Parcelable。
这对我来说是一个很好的墙文本,我很抱歉......但是这个对我项目的限制真的让我感到困惑,因为我对android / java编程知识非常有限(我习惯了.net,现在只在java / android上工作了一个月)它会有所改进,所以如果有人知道我应该调查的东西会很棒!