2010-08-29 2 views
1

У меня есть объект Soundpool и несколько звуков, но когда-то создал я не могу изменить звуки воспроизведения в любом случае, такие как число циклов, объем, остановка и т.д.Soundpool звуков не меняется

код декларации:

public SoundPool sounds; 
public HashMap<Integer, Integer> soundmap = new HashMap<Integer, Integer>(); 
static final public int UFO=3; 
static final public int PlayerDeath=3; 
static final public int InvaderDeath=2; 
static final public int PlayerFire=1; 

звуковой код назначение:

sounds = new SoundPool(10,AudioManager.STREAM_MUSIC,0); 
soundmap.put(PlayerDeath,sounds.load(getContext(), R.raw.explosion, 1)); 
soundmap.put(InvaderDeath,sounds.load(getContext(), R.raw.invaderkilled, 1)); 
soundmap.put(PlayerFire,sounds.load(getContext(),R.raw.shoot, 1)); 
soundmap.put(UFO,sounds.load(getContext(),R.raw.ufo, 1)); 

старт/стоп код:

public void PlayUFOMusic() 
{ 
    sounds.play(soundmap.get(UFO),0.8F,0.8F,1,2000,1);  
} 

public void StopUFOMusic() 
{ 
    sounds.stop(soundmap.get(UFO)); 
} 

Я знаю, что эти функции вызываются, но ничто не приведет к его изменению в любом случае. Я также попробовал setLoop, setVolume, паузу и разгрузку, ни одна из них не работала.

Любые идеи?

ответ

2

Вот игра() Синтаксис:

public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) 

Так не должна быть:

sounds.play(soundmap.get(UFO),0.8F,0.8F,1,-1, 1); 

сделать петлю звук навсегда?

Редактирование: прочитайте вопрос немного, чтобы быстро, но если вы используете эту функцию воспроизведения, это петля?

+0

А, извините, это было первоначально, но я изменился на 2000, чтобы увидеть, была ли проблема с этим циклом навсегда. Это цикл, это не проблема. –

+1

Итак, проблема в том, что вы не можете изменить звучание ВО ВРЕМЯ воспроизведения? Если это так, вы не делаете запись ссылки на streamID, которая возвращается из функции play(). Это id, на котором вы запускаете setLoop() и другие методы. Если это вам не поможет, пожалуйста, объясните свою проблему лучше. – softarn

+0

Ах, спасибо, я думал, что идентификатор, возвращаемый загрузкой, был использован для управления им, с задним числом, что, очевидно, это не сработает. –

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