SoundPool останавливается только один раз
При первом нажатии кнопки звук останавливается. Но нажатие после этого не дает никакого эффекта. Это мой код Java:
public class App extends MultiTouchActivity {
SoundPool sp;
int dub1s;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
dub1s = sp.load(this, R.raw.dub1, 1);
}
public void dubstep1(View view) {
sp.stop(dub1s);
sp.play(dub1s, 1, 1, 1, 0, 1f);
}
1 ответ
Решение
SoundPool.stop()
принимает идентификатор потока (возвращаемое значение из play
), а не идентификатор звука (возвращаемое значение из load
).
Они не одно и то же.
public class App extends MultiTouchActivity {
SoundPool sp;
int mSoundId;
int mStreamId = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
mSoundId = sp.load(this, R.raw.dub1, 1);
}
public void dubstep1(View view) {
if(mStreamId != 0) {
sp.stop(mStreamId);
}
mStreamId = sp.play(mSoundId, 1, 1, 1, 0, 1f);
}