Страницы

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

воскресенье, 8 марта 2020 г.

MediaPlayer воспроизведение

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

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

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