我目前正在为我的学习项目工作,在这个项目中我必须创建一个小型的安卓游戏。如果一切顺利,我的游戏会变得或多或少像老式的小宠物游戏。使用多个活动(闪屏,菜单,游戏视图,战斗视图等)构建游戏。现在我有大部分工作。但有一件事困扰着我,身边的人无法给出明确的答案。在活动之间管理一个班级
在游戏中,我有一个名为MusicPlayer.java的类。本课程用于在大部分活动中播放背景音乐。现在,我在活动的创建中初始化这个类,并将其设置为从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中工作一个月),它会得到改善,所以如果有人知道我应该看看,那会很棒!
嘿,感谢快速的先驱者。我做了一些阅读,看起来像是我应该明天尝试的东西。我会让你知道这是如何解决的! – 2013-03-06 23:16:28
关于延迟,对不起,但我终于得到了时间。过了不多Struggeling后,我已经成功地我Musicplayer类转换到一个意向服务女巫作品的方式更好,则旧的情况! – 2013-03-08 19:12:16
很高兴帮助:) – nicopico 2013-03-08 21:48:42