user1798049
user1798049

Reputation: 265

SoundPool Streams

So I have soundpool OnLoadCompleteListener which has this code mStreamId = soundPool.play(sampleId, 1, 1, 1, 0, 1f); and i have 2 buttons that will play diffrent soundpools.I use mStreamId to stop soundpool.My problem is when i click first button and it plays sound and i click the second button it will stop the sound of first button. Here is my code:

    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);
    }

Upvotes: 0

Views: 183

Answers (1)

Birkensox
Birkensox

Reputation: 3721

Because you told it to. Remove the stop method calls if you want the sounds to play to completion. Soundpool will return the next available stream from the pool when playing a sound.

Upvotes: 0

Related Questions