SoundPool および .OGG ファイルを使用してループ サウンドを再生すると問題が発生します。名前に関連付けられたサウンドを見つけて再生/停止するために、この HashMap をセットアップしました
public void playLoopSound(String soundName){
currentSound = (Integer) soundMap.get(soundName);
if(currentSound != -1){
try{
Logger.log("Playing Loop Sound: " + currentSound);
loopingSound = soundPool.play(currentSound, 1, 1, 0, -1, 1);
} catch (Exception e) {
Logger.log("Sound Playing Error: " + e.getMessage());
}
} else {
Logger.log("Sound Not Found");
}
}
public void stopLoopSound(){
soundPool.stop(loopingSound);
loopingSound = 0;
}
この設定は問題なく機能します。キャラクターが歩き始めたらループを開始し、歩くのをやめたらループを停止します。
ただし、サウンドはランダムに再生されなくなります。通常、使用後 (オンとオフを切り替えると) 1 分ほどかかります...
他の誰かが、SoundPool とループ サウンドで同様の問題に遭遇しましたか?