#java #android #mediaplayer
На сайте нашёл код: public void onClick (View v){ index = 0; mp = MediaPlayer.create(getApplicationContext(), sounds[index] ); mp.setLooping(false); mp.start(); mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ public void onCompletion(MediaPlayer mp){ if(index < sounds.length-1){ index++; mp = MediaPlayer.create(getApplicationContext(), sounds[index]); mp.start(); mp.setOnCompletionListener(this); } else mp.release(); } }); } Но он воспроизводит все треки друг за другом. Может кто-нибудь подскажет: как сделать при нажатии на кнопку воспроизведение одного трека? И пока трек воспроизводится, кнопка должна быть неактивна, а следующее нажатие воспроизводит второй трек. И ещё как сделать управление с кнопки громкости+ ?
Ответы
Ответ 1
Так пропишите такое поведение. При нажатии делаете кнопку неактивной, а по окончании возвращаете: int index = 0; //дабы не сбрасывалось по нажатию на кнопку выносим public void onClick (View v){ yourButton.setEnabled(false); //кнопка неактивна mp = MediaPlayer.create(getApplicationContext(), sounds[index]); mp.setLooping(false); mp.start(); mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ public void onCompletion(MediaPlayer mp){ yourButton.setEnabled(true); //после окончания воспроизведения делаем кнопку активной mp.release(); if(index < sounds.length-1){ index++; //увеличиваем счетчик для воспроизведения следующего трека } else { index = 0; //сбрасываем в 0 } } }); }Ответ 2
Переписать код метода onCompletion(MediaPlayer mp): public void onCompletion(MediaPlayer mp){ mp.release(); v.setEnabled(true); if(index < sounds.length-1) { index++; } } Чтобы следующий трек проиграть, вам надо индекс увеличить на один
Комментариев нет:
Отправить комментарий