2013-09-03 3 views
0

, так что у меня была проблема, я не могу получить голову. Я использовал статический класс для хранения моего SoundPool.Android Soundpool больше не работает

например.

public class Sound 
{ 

    private static SoundPool sounds; 
    private static int charged; 

    public static void loadSound(Context context) 
    { 
     sounds = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); 
     charged = sounds.load(context, R.raw.charged, 1); 
    } 

    public static void playCharged() 
    { 
     sounds.play(charged, 1, 1, 1, 0, 1); 

    } 

Затем в методе OnCreate моей основной деятельности (которая простирается BaseGameActivity) Я следующее:

setVolumeControlStream(AudioManager.STREAM_MUSIC); 
Sound.loadSound(this); 

Так играть, звук, который я обычно просто идти Sound.playCharged() из моего Игровой объект, который является атрибутом моей основной деятельности. Раньше все это отлично работало. Я не уверен, когда он перестает работать, но я могу только предположить, как только я начал делать серьезные изменения. Я поддерживал службы Google Play, а затем помещал объект Game в другое действие.

Ни один из звуков не воспроизводится. Тем не менее, я обнаружил, что звуки играют, если вы вызываете метод для воспроизведения их внутри конструктора для моего игрового объекта или других конструкторов. Мое предположение заключается в том, что что-то происходит, когда я все инициализировал, как будто что-то теряется.

+0

Что-то попробовать: создайте метод SoundPool.OnLoadCompleteListener и зарегистрируйте состояние загрузки. Кроме того, зарегистрируйте возвращаемое значение из 'sounds.play()'. – fadden

+0

Привет, благодарю вас за предложение! У меня не было одного из них, поэтому я обязательно добавлю слушателя на будущее. К счастью, я решил ошибку, связанную с тем, что я добавил новую активность. В оригинальном методе Activities onStop я бы выпустил звуки. Не дать никаких ошибок сделать это трудно обнаружить. – Jason

ответ

0

Хорошо, поэтому мне в конечном итоге удалось решить проблему, не выпустив звуки в методе onStop моего основного действия, но вместо этого я создал новую деятельность. Поскольку метод onStop будет вызываться до начала второго действия, испортившего звуки.

Смежные вопросы