T
Tom299
Stamm-User
- 122
Hi,
in meiner App hab ich ein paar Soundeffekte vorgesehen, die z.B. beim drücken eines Buttons oder Menüs etc. abgespielt werden sollen.
Jetzt habe ich hier Media Playback | Android Developers gelesen, daß der Media Player die bevorzugte Klasse für das Abspielen von Sounds ist (This class is the primary API for playing sound and video).
Mein Problem ist nun, daß ich nicht weiß, wie ich mehrere Sounds in den MediaPlayer reinbekomme:
Bei .create kann man ja nur 1 resource angeben, bei meinen Tests mußte ich also für 2 Sounds 2 MediaPlayer benutzen, was mir doch etwas spanisch vorkommt. Ich finde in der API aber irgendwie nichts, wie ich mehrere Sounds hinzufügen könnte? Oder ist das gar nicht möglich?
Zur Zeit benutze ich daher die SoundPool-Klasse:
Das funktioniert auch soweit einwandfrei, aber wenn der MediaPlayer der bevorzugte Player ist, würd ich den schon gerne verwenden. Kann mir jemand weiterhelfen oder sollte ich einfach beim SoundPool bleiben?
Grüße,
Tom
in meiner App hab ich ein paar Soundeffekte vorgesehen, die z.B. beim drücken eines Buttons oder Menüs etc. abgespielt werden sollen.
Jetzt habe ich hier Media Playback | Android Developers gelesen, daß der Media Player die bevorzugte Klasse für das Abspielen von Sounds ist (This class is the primary API for playing sound and video).
Mein Problem ist nun, daß ich nicht weiß, wie ich mehrere Sounds in den MediaPlayer reinbekomme:
Code:
final MediaPlayer mediaPlayerHit;
mediaPlayerHit = MediaPlayer.create(FindItCloneActivity.this, R.raw.collision8bit);
mediaPlayerHit.setLooping(false);
final MediaPlayer mediaPlayerFailure;
mediaPlayerFailure = MediaPlayer.create(FindItCloneActivity.this, R.raw.robot_noise);
mediaPlayerFailure.setLooping(false);
Bei .create kann man ja nur 1 resource angeben, bei meinen Tests mußte ich also für 2 Sounds 2 MediaPlayer benutzen, was mir doch etwas spanisch vorkommt. Ich finde in der API aber irgendwie nichts, wie ich mehrere Sounds hinzufügen könnte? Oder ist das gar nicht möglich?
Zur Zeit benutze ich daher die SoundPool-Klasse:
Code:
private SoundPool soundPool;
.
.
.
soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
loaded = true;
}
});
soundHit = soundPool.load(this, R.raw.bottle, 1);
soundFail = soundPool.load(this, R.raw.beep, 1);
.
.
.
private void playSound(int soundID) {
if (loaded) {
soundPool.play(soundID, volume, volume, 1, 0, 1f);
}
}
Das funktioniert auch soweit einwandfrei, aber wenn der MediaPlayer der bevorzugte Player ist, würd ich den schon gerne verwenden. Kann mir jemand weiterhelfen oder sollte ich einfach beim SoundPool bleiben?
Grüße,
Tom