#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++; } } Чтобы следующий трек проиграть, вам надо индекс увеличить на один
Комментариев нет:
Отправить комментарий