SoundPool bunun için doğru sınıftır. Aşağıdaki kod, nasıl kullanılacağı ile ilgili bir örnektir. Ayrıca, sesleri yönetmek için birkaç uygulamasında kullandığım koddur. İstediğiniz gibi duyabilirsiniz (veya bellek izinleri olarak).
public class SoundPoolPlayer {
private SoundPool mShortPlayer= null;
private HashMap mSounds = new HashMap();
public SoundPoolPlayer(Context pContext)
{
// setup Soundpool
this.mShortPlayer = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
mSounds.put(R.raw.<sound_1_name>, this.mShortPlayer.load(pContext, R.raw.<sound_1_name>, 1));
mSounds.put(R.raw.<sound_2_name>, this.mShortPlayer.load(pContext, R.raw.<sound_2_name>, 1));
}
public void playShortResource(int piResource) {
int iSoundId = (Integer) mSounds.get(piResource);
this.mShortPlayer.play(iSoundId, 0.99f, 0.99f, 0, 0, 1);
}
// Cleanup
public void release() {
// Cleanup
this.mShortPlayer.release();
this.mShortPlayer = null;
}
}
Sen arayarak bu kullanırsınız:
SoundPoolPlayer sound = new SoundPoolPlayer(this);
sizin etkinlik'ın onCreate içinde() (ya da her zaman buna sonra). Eğer seslerle bitirdiğinizde
sound.playShortResource(R.raw.<sound_name>);
Son olarak, çağrı: Bundan sonra, bir ses basit çağrıyı oynamak için
sound.release();
kaynaklarını serbest bırakmak için.
Evet, ['SoundPool'] (http://developer.android.com/reference/android/media/SoundPool.html) gitmenin yoludur. – kcoppock