Java 声音池后清理(应用程序关闭后仍播放循环声音)

Java 声音池后清理(应用程序关闭后仍播放循环声音),java,android,soundpool,Java,Android,Soundpool,音乐池之后我如何清理?我的循环声音在应用程序被关闭后仍然播放 //我的onStop()onPause()是相同的 声音一直持续到重新启动 public void onStop(){ soundPool.stop(curs); } public int playSound(int sound, int loop) { if (curs != sound) { curs = sound; AudioManager mgr =

音乐池之后我如何清理?我的循环声音在应用程序被关闭后仍然播放

//我的onStop()onPause()是相同的 声音一直持续到重新启动

public void onStop(){
    soundPool.stop(curs);   
    }

  public int playSound(int sound, int loop) {
   if (curs != sound)
   {

       curs = sound;   
       AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
       float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
       float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
       float volume = streamVolumeCurrent / streamVolumeMax;  
       return soundPool.play(soundsMap.get(sound), volume, volume, 1, loop, 1);

       }
       return curs;
 }     
 // is how I call it in a runnable class

   curs=playSound(cur,-1);

当您调用
playSound
时,您永远不会停止旧的声音。如果多次调用
playSound
,您将播放两种声音,退出时只取消其中一种。一个解决方案是保留您启动的所有声音ID。或者,如果您一次只需要一个声音,请更改代码以取消当前声音,然后再开始下一个声音

if (curs != sound)
{
  soundPool.stop(curs); 
  curs = sound;   
  // ... 
}

你是人类中的王子