Soundpool другой потоковый

У меня есть звуковой пул, который будет загружать файл с SD-карты, и я использовал mstreamID, чтобы остановить его, и я использую mstreamID в OnLoadCompleteListener, чтобы файлы могли загружаться. Я использую 2 кнопки для воспроизведения различных звуков звукового пула. Но когда я нажимаю первую кнопку, и пока она воспроизводит 1 звук, я нажимаю вторую кнопку, и звук с первой кнопки останавливается.

Вот мой код:

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);
        }
// et1 is extended from Settings.java
        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)


Прочтите документ, пожалуйста, и что вы хотите сказать?

  1. не загружайте один и тот же файл более одного раза, если вы его не выгружаете.
  2. загружать весь звук при запуске при использовании SoundPool.
  3. streamId все время увеличивается, вы никогда не получите тот же streamId.
person ifreedom    schedule 23.11.2012