Страницы

Поиск по вопросам

четверг, 30 мая 2019 г.

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(); } }); }
Но он воспроизводит все треки друг за другом. Может кто-нибудь подскажет: как сделать при нажатии на кнопку воспроизведение одного трека? И пока трек воспроизводится, кнопка должна быть неактивна, а следующее нажатие воспроизводит второй трек. И ещё как сделать управление с кнопки громкости+ ?


Ответ

Так пропишите такое поведение. При нажатии делаете кнопку неактивной, а по окончании возвращаете:
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 } } }); }

Комментариев нет:

Отправить комментарий