как заставить аудио массив не повторяться - PullRequest
0 голосов
/ 23 июня 2019

У меня есть несколько примеров звука массива, я хочу воспроизвести следующий звук, когда другие звуки будут закончены, и нет повторения, когда звуковой массив закончен. Но когда массив закончен, он повторяется. как сделать так, чтобы массив не повторялся?

Я искал, но моя проблема не решена

публичный класс Balok расширяет AppCompatActivity {

int [] sound;
int soundke = 0;
MediaPlayer mediaPlayer;
int selesai = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_balok);

    sound = new int[] {R.raw.swoosh1, R.raw.swoosh2, R.raw.decision};


    mediaPlayer = MediaPlayer.create(balok.this, sound[0]);


    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            selesai++;
            if (selesai == 2) {
                mediaPlayer.release();
            } else {
                play();
            }
        }
    });

}

private void play () {
    soundke = (soundke+1) % 3;
    AssetFileDescriptor afd = this.getResources().openRawResourceFd(sound[soundke]);

    try {
        mediaPlayer.reset();
        mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
        mediaPlayer.prepare();
        mediaPlayer.start();
        afd.close();
    } catch (IOException e) {

    }
}

Я надеюсь, что когда звуковой массив закончится, петли не будет, извините, если мой язык сбивает с толку, я надеюсь, вы можете помочь мне

...