SoundPool не загружается в приложении для Android - PullRequest
0 голосов
/ 09 июля 2011

Я создаю приложение, в котором я пытаюсь загрузить один звук в 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);
}

Ответы [ 2 ]

0 голосов
/ 10 июля 2011

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

0 голосов
/ 09 июля 2011

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

 private SoundPool voices;

 @Override
 public void onCreate(Bundle savedInstanceState) {
    voices = new SoundPool(1, 3, 0);
    voices.setOnLoadCompleteListener(this);
 }
...