Android uygulamamızda ses dosyaları çalarak uygulamalarımıza farklı dokunuşlar yapabiliriz ya da belki bir müzik aletinin simülasyonunu Android uygulaması olarak hazırlayabiliriz. Bu uygulamada birden çok ses dosyasını eşzamanlı olarak çalmaya izin veren SoundPool sınıfı ile basit bir uygulama yapacağız ancak bu uygulamadaki ses dosyalarının sayılarını artırarak kendi ihtiyacınıza uygun sesli uygulamalar hazırlayabilirsiniz.
Tasarım olarak sadece basıldığında ses dosyasını çalan bir adet buton ekledim. Kendi tasarımınızı activity_main.xml dosyasını değiştirerek kendiniz yapabilirsiniz:
Çalmak istediğimiz ses dosyasını da res klasörü altında raw adında bir klasör açarak bu klasörün içerisine ekliyoruz.
Şimdi sıra geldi uygulamayı kodlamaya.
MainActivity.java
public class MainActivity extends Activity {
private final int SES_SAYISI = 7;
private final float SOL = 1.0f;
private final float SAG = 1.0f;
private final int TEKRAR = 0;
private final int PRIORITY = 0;
private final float OYNATMA_ORANI = 1.0f;
private SoundPool msoSoundPool;
private int mSesDosyasiId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.buttonTetikle);
msoSoundPool = new SoundPool(SES_SAYISI, AudioManager.STREAM_MUSIC,0);
mSesDosyasiId = msoSoundPool.load(getApplicationContext(),R.raw.ses,1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
msoSoundPool.play(mSesDosyasiId,SOL,SAG,PRIORITY,TEKRAR,OYNATMA_ORANI);
}
});
}
}
Bu kodlar ile tek bir ses dosyasını arka arkaya çalabilirsiniz ancak SoundPool nesnesi içerisine daha fazla ses dosyası ekleyerek çalacak ses dosyalarının sayısını, ses yüksekliğini, sol ya da sağ kulaklıktan gelmesini ve öncelik sırasını belirleyebilirsiniz.