Java 声音池后清理(应用程序关闭后仍播放循环声音)
音乐池之后我如何清理?我的循环声音在应用程序被关闭后仍然播放 //我的onStop()onPause()是相同的 声音一直持续到重新启动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 =
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;
// ...
}
你是人类中的王子