Потоки SoundPool

Итак, у меня есть звуковой пул OnLoadCompleteListener, который имеет этот код mStreamId = soundPool.play(sampleId, 1, 1, 1, 0, 1f); и у меня есть 2 кнопки, которые будут воспроизводить разные звуковые пулы. Я использую mStreamId, чтобы остановить звуковой пул. Моя проблема в том, что когда я нажимаю первую кнопку, и она воспроизводит звук, и я нажимаю вторую кнопку, она останавливает звук первой кнопки. Вот мой код:

    public class MainActivity extends Settings {
        SoundPool mSoundPool;
        int mSoundId;
        int mStreamId = 0;
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
    mSoundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
            mSoundPool
                    .setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
                        public void onLoadComplete(SoundPool soundPool,
                                int sampleId, int status) {
                            mStreamId = soundPool.play(sampleId, 1, 1, 1, 0, 1f);
}
                });

    }
//OnClick
public void button1(View view) {
        if (mStreamId != 0) {
            mSoundPool.stop(mStreamId);
        }

        String path = getFullFilePath(getApplicationContext(), et1.getText()
                .toString());
        mSoundId = mSoundPool.load(path, 1);
    }
public void button2(View view) {
        if (mStreamId != 0) {
            mSoundPool.stop(mStreamId);
        }

        String path = getFullFilePath(getApplicationContext(), et2.getText()
                .toString());
        mSoundId = mSoundPool.load(path, 1);
    }

person user1798049    schedule 22.11.2012    source источник


Ответы (1)


Потому что ты сказал это. Удалите вызовы метода остановки, если вы хотите, чтобы звуки воспроизводились до конца. Soundpool будет возвращать следующий доступный поток из пула при воспроизведении звука.

person Dominic Cerisano    schedule 05.10.2013