释放后没有声音()媒体播放器

时间:2012-11-01 05:04:35

标签: android

我在Android应用程序类中创建了一个SoungMagager类,因此我可以使用它来管理应用程序中的声音。在SoundManager中,我有一个SoundPool和一个MediaPlayer,分别播放一些短音和长音。

为了“清理”我,我在onDestroy()方法中放置了释放()SoundPool和MediaPlayer的方法,并调用finish()来退出应用程序。

我的问题是,如果我这样做完()并立即回来应用程序,我没有更多的声音。没有声音池或媒体播放器。

如果我只是按“Home”硬件按钮退出,再次回到应用程序,就会发出声音。

如果我完成(),则转到系统应用管理并强制关闭应用,然后再次运行应用,有声音。

如果我使用System.exit(0)而不是finish(),那么一切都很好,但我被告知不要这样做。

我怀疑这是因为Application类的事情,但我不确定。我该如何解决这个问题?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为你将soundpoolmediaplayer对象放在你要完成的活动中(),当活动被销毁时,它的实例变量被释放(我的意思是删除)所以很明显你需要将声音分配给soundManager类的soundpool,这样它就不会被销毁。我想你明白了我的意思。

public class SoundManager {

    public static SoundPool mSoundPool;
    public static MediaPlayer mMediaPlayer;
      .....
      ....
}

现在在您使用soundpool对象的ur活动中执行以下操作: -

   class <your activity> extend Activity{
       @Override
   public void onCreate(Bundle savedInstanceState) {
             SoundManager.mSoundPool = <assign your audio>;
             SoundManager.mMediaPlayer = <assign>;
       }
}