как добавить простой звуковой пул?

Привет, я разрабатывал приложение для моей сестры-аутиста и застрял, пытаясь создать звуковую активность с нажатием кнопки, я прочитал много руководств и по той или иной причине не мог понять это, я узнал различия между MediaPlayer и soundPool и думаю, что я бы предпочел использовать последний, мои файлы находятся в res/raw и имеют формат .ogg (прочитал, что требуется .wav, но не продвинулся достаточно далеко, чтобы проверить его.) поэтому, если, например, у меня есть кошка и три кнопки составляют имя кота, и когда вы нажимаете одну из них, она произносит букву вслух. Я создал макет в xml и несколько раз пытался и потерпел неудачу, думаю, в основном с помощью setOnClickListeners, в результате я в значительной степени вернулся на круги своя один я читал из этого руководства http://www.techrepublic.com/blog/app-builder/getting-your-feet-wet-in-androids-soundpool/877, но он странным образом распадается с каждым Это затрудняет интерпретацию для новичка? кто-нибудь может помочь?


person martinseal1987    schedule 15.10.2013    source источник


Ответы (1)


Попробуй это

Добавьте это перед onCreate

SoundPool sp;
int yourSound = 0;

И это внутри твоего onCreate

 sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
 yourSound = sp.load(this, R.raw.whatEverTheNameOfYourSound, 1);

Затем добавьте это в свою кнопку в XML

android:onClick="playSound"

И, наконец, добавьте этот метод в свою деятельность

 public void playSound(View v){
    if(yourSound != 0)
        sp.play(yourSound, 1, 1, 0,0, 1);
}

Не забудьте добавить звуковой файл в исходную папку. Надеюсь, поможет.

sp.play(yourSound, 1, 1, 0,0, 1); означает sp.play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate); Вы можете видеть это здесь.

person RussVirtuoso    schedule 16.10.2013
comment
Хорошо, думаю, я понял, кроме цифр, которые вы использовали в любое время, чтобы объяснить их, если нет, я понимаю, спасибо за ваш ответ. - person martinseal1987; 17.10.2013
comment
Я отредактировал свой ответ. Там вы можете увидеть, что означают эти числа. - person RussVirtuoso; 18.10.2013
comment
Огромное спасибо - person martinseal1987; 19.10.2013