На сайте нашёл код:
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
}
}
});
}
Комментариев нет:
Отправить комментарий