所以我遇到了一个我无法理解的问题。我一直在使用静态类来保持我的SoundPool。
e.g。
public class Sound
{
private static SoundPool sounds;
private static int charged;
public static void loadSound(Context context)
{
sounds = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
charged = sounds.load(context, R.raw.charged, 1);
}
public static void playCharged()
{
sounds.play(charged, 1, 1, 1, 0, 1);
}
然后在我的主Activity的onCreate方法(扩展BaseGameActivity)中,我执行以下操作:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
Sound.loadSound(this);
所以为了播放声音,我通常会从我的主要活动的属性Game对象中去Sound.playCharged()。以前,这一切都很有效。我不确定它何时停止工作但是,我只能假设一旦我开始做出重大改变。我支持Google Play服务,然后将我的Game对象放入另一个活动中。
没有声音播放。但是,我发现如果调用方法在构造函数中将它们播放到我的游戏对象或其他构造函数中,则会发出声音。我的假设是,一旦我初始化了一切,就会发生一些事情,好像有什么东西丢失了。
答案 0 :(得分:0)
好吧所以我最终设法通过不释放主要活动的onStop方法中的声音来解决问题,而是通过我创建的新活动来解决问题。因为onStop方法会在开始第二个活动之前被调用,因为它会混淆声音。