SoundPool не загружается в приложение для Android

Я делаю приложение, в котором пытаюсь загрузить один звук в SoundPool, чтобы я мог управлять скоростью воспроизведения, когда захочу, воспроизводить его, когда захочу, и выпускать, когда захочу. Однако мой SoundPool не загружается. Я пытался изменить много разных вещей, и ничего не работает. Я поместил Log.d в функцию OnLoadComplete, чтобы увидеть, загружается ли он, и журнал не появляется при запуске... Может быть, после просмотра моего кода кто-нибудь еще мог бы мне помочь. Спасибо!

private int currentVoice = 0;
private SoundPool voices = null;
....
public void onCreate(Bundle savedInstanceState) {
....
    voices = new SoundPool(1, 3, 0);
    voices.setOnLoadCompleteListener(this);
....
}
private void giveSentence() throws IOException {
....
voices.release();
currentVoice = voices.load(this, sentences[index].voice, 1);
voices.play(currentVoice, 1, 1, 1, 0, 1f);

public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
    soundPool.play(sampleId, 1, 1, 1, 0, 1f);
    boolean loaded = true;
    Log.d("Game","Is it loaded? " + loaded);
}

person datWooWoo    schedule 09.07.2011    source источник
comment
Исправил себя, делал voices.release(); прежде чем что-либо было загружено. По какой-то причине это просто выключило SoundPool.   -  person datWooWoo    schedule 10.07.2011


Ответы (2)


Вы должны инициализировать свой звуковой пул где-то в методе onCreate, Наверное.

 private SoundPool voices;

 @Override
 public void onCreate(Bundle savedInstanceState) {
    voices = new SoundPool(1, 3, 0);
    voices.setOnLoadCompleteListener(this);
 }
person Konstantin Burov    schedule 09.07.2011
comment
Извините, я пропустил кусок кода. Они уже есть в методе onCreate. Так что проблема не в этом... - person datWooWoo; 09.07.2011

Исправил себя, делал voices.release(); прежде чем что-либо было загружено. По какой-то причине это просто выключило SoundPool. Вынул эту строку и сделал voice.release() после того, как я проверил, загружена ли она. Теперь это работает.

person datWooWoo    schedule 09.07.2011