2011-10-16 51 views
5

StackOverflow'da arama yaptım ve benim gibi bir site hesabı bulamıyorum. Bir ses dosyası yürüten her düğme ile dört düğme kullanıyorum. Ben SoundPool kullanıyorum
:
SoundPool sound = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);

Ben de LogCat bir ben bildirimini oluşturmak için Log kullanır OnLoadCompleteListener() kullanıyorum.
Taklitçideki programı başlattığımda, tüm dört örneği de tam yükleme olarak görüyorum. Bununla birlikte, programların üçü çalmaya devam edecektir, ancak, her zaman bir kişi her zaman söyleyecektir:


Herhangi bir Fikir .. çünkü ben tamamen kabartılmışım. Ses dosyaları squarewave tonlarını oynayan 16 bitlik pcm dalga dosyasıdır.
Yük Kodu:
sound.setOnLoadCompleteListener(new OnLoadCompleteListener(){Android 2.2 - SoundPool örnek 0 READY değil

 @Override 
     public void onLoadComplete(SoundPool sound, int sampleId, int status) { 
      if(status != 0) 
       Log.e("SOUND LOAD"," Sound ID: " + sampleId + " Failed to load."); 
      else 
       Log.i("SOUND LOAD"," Sound ID: " + sampleId + " loaded."); 
     } 
    }); 

    soundID[0] = sound.load(this, R.raw.greennote, 1); 
    soundID[1] = sound.load(this, R.raw.rednote, 1); 
    soundID[2] = sound.load(this, R.raw.yellownote, 1); 
    soundID[3] = sound.load(this, R.raw.bluenote, 1); 


Çal Ses: Ben de aynı sorunları yaşıyorum

streamid.setStreamId(myActivity.sound.play(id, 0.5f, 0.5f, 0, 0, 1)); 

+0

Sorunuzu, yüklenen ve sesleri çalan kodu eklemek için düzenleyin. – Squonk

cevap

2

. Denemelerimden, kimlik işlemede yanlış bir şey var gibi görünüyor. SoundPool, 0 ile

arasındaki ses kimliklerini sevmez. Bu yüzden bir iş buldum. Örnek kimlikleri 1 ile değil, 0 ile başlat. Umarım işe yarar.

+0

Bunu nasıl yapıyorsunuz? Örnek kimliğinizi 1 ile mi başlatmalıyım? –

+0

Hmmm, tüm farklı seslerin kaydını tutmak için SoundPool'u bir HashMap ile kullanıyordum. HashMap ile, kimliği ('anahtar' olarak da adlandırılır) manuel olarak ayarlarsınız. HashMap kullanmadığınıza benzediğinden, yorumum muhtemelen anlamlı olmayacaktır. Zaten iyi şanslar! –