Spielen mehrere sounds verwenden wird nun vom Soundmanager
Wenn ich spielen Sie einen einzelnen Ton, es läuft wunderbar.
Hinzufügen eines zweiten Geräusch verursacht es zum Absturz zu bringen.
Wer weiß, was das problem verursacht?
private SoundManager mSoundManager;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sos);
mSoundManager = new SoundManager();
mSoundManager.initSounds(getBaseContext());
mSoundManager.addSound(1,R.raw.dit);
mSoundManager.addSound(1,R.raw.dah);
Button SoundButton = (Button)findViewById(R.id.SoundButton);
SoundButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mSoundManager.playSound(1);
mSoundManager.playSound(2);
}
});
}
- Was ist die Ausnahme, die bewirkt, dass es zu Abstürzen? Stack-trace?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ändern Sie die zweite Zeile:
Um zu spielen mehrere sounds auf einmal, zuerst müssen Sie lassen Sie die SoundPool wissen, dass. In der Erklärung von SoundPool merke ich, wie angegeben, 20 streams. Ich habe viele Waffen und bösen Jungs machen Lärm in meinem Spiel, und jeder hat eine sehr kurze sound-Schleife, < 3000ms. Bemerken, wenn ich einen sound hinzuzufügen, unten verfolgen Sie die angegebenen index in einem Vektor namens "mAvailibleSounds", auf diese Weise mein Spiel versuchen können und spielen von sounds für Gegenstände, die nicht existieren und weitermachen, ohne abzustürzen. Jeder Index in diesem Fall entspricht ein sprite-id. Nur damit Sie verstehen, wie ich das Mapping für bestimmte Töne zu bestimmten sprites.
Nächsten wir Schlange klingt, mit playSound(). Dies geschieht jedes mal eine soundId fällt in einen Stapel, die ich dann pop, wenn mein timeout Auftritt. Dies erlaubt mir, mich zu töten, einen stream, nachdem es gespielt hat, wieder auf und verwenden es wieder. Ich wähle 20 streams, weil mein Spiel ist sehr laut. Nach, dass die sounds heraus gewaschen zu bekommen, sodass jede Anwendung erfordert eine Magische Zahl.
Fand ich diese Quelle hier, und fügte hinzu, die runnable & kill-die Warteschlange selbst.