2016-04-04 64 views
0

How to make Random sound when button click?SoundPool'u kullanarak rastgele bir ses nasıl oynanır?

Programlama dünyasında oldukça yeniyim ve daha önce yukarıdaki bağlantıyı kontrol ederek rastgele bir ses çalmak için bir referans olarak kullanmayı denedim. MediaPlayer'dan daha kısa klipleri oynatmanın daha iyi olduğunu anladığımdan beri SoundPool kullanıyorum. Toplamda dört sesim var.

Uygulamamı çalıştırdığımda, ne yazık ki durdurulduğunu belirten bir hata alıyorum.

Neyin yanlış olabileceğine dair bir fikir var mı?

import java.util.Random; 

public class actibida extends AppCompatActivity { 
SoundPool soundPool; 
Button button; 

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_actibida); 

    final int[] sound = new int[4]; 
    sound[0] = soundPool.load(actibida.this, R.raw.el, 1); 
    sound[1] = soundPool.load(actibida.this, R.raw.guau, 1); 
    sound[2] = soundPool.load(actibida.this, R.raw.miau, 1); 
    sound[3] = soundPool.load(actibida.this, R.raw.quack, 1); 

    final Random r = new Random(); 

    button = (Button) this.findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View button) { 
      soundPool.play(sound[r.nextInt(4)], 1.0f, 1.0f, 0, 0, 1.0f); 
     } 

    }); 
} 

}

cevap

2

Aslında çalışmak için SoundPool örneğini oluşturmadınız:

Bu benim kodudur. SoundPool.load çağrılmadan önce, SoundPool'un bazı özelliklerini tanımlayan bir örnek oluşturmak için the SoundPool constructor (veya Builder API) kullanmanız gerekecektir.

+0

Çok teşekkür ederim! Bu oldukça aptal bir hataydı. Sorun çözüldü. – Camilo

+0

Yardım etmekten memnun oldum. Lütfen bu cevabı doğru olanı kabul etmeyi unutmayın. –