#android #progress-bar #seekbar #mediacontroller
#Android #индикатор выполнения #панель поиска #mediacontroller
Вопрос:
Я намерен написать пользовательский медиа-контроллер для своего приложения. Я планировал использовать панель поиска как для поиска, так и для отображения прогресса. Пытаюсь реализовать это.
У кого-нибудь есть такая реализация или я на неправильном пути?
Ответ №1:
Наконец-то я понял это!!
Решение, которое я придумал, было примерно таким :
Прежде всего установите максимальный прогресс для панели поиска в качестве продолжительности видео
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
seekBar.setMax(videoView.getDuration());
seekBar.postDelayed(onEverySecond, 1000);
}
});
Этот запускаемый инструмент будет продолжать обновлять панель прогресса :
private Runnable onEverySecond=new Runnable() {
@Override
public void run() {
if(seekBar != null) {
seekBar.setProgress(videoView.getCurrentPosition());
}
if(videoView.isPlaying()) {
seekBar.postDelayed(onEverySecond, 1000);
}
}
};
И затем setOnSeekBarChangeListener для панели поиска можно использовать для отслеживания запросов пользователя на носителе. Используя логическое значение fromUser, мы можем определить, был ли это обратный вызов из-за взаимодействия пользователя или
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser) {
// this is when actually seekbar has been seeked to a new position
videoView.seekTo(progress);
}
}
});
Комментарии:
1. отлично! но когда видео заканчивается, и я хочу воспроизвести
videoView.start()
его снова, панель поиска не работает, как решить эту проблему?
Ответ №2:
Вы устанавливаете второй день выполнения.
Нет, вы на правильном пути. Это очень хорошо для отображения таких данных, как ход загрузки и текущее местоположение потоков (мультимедиа).
Комментарии:
1. Спасибо за ответ. Но я использую дополнительный прогресс, чтобы показать количество потоков. Я публикую ниже то, что я придумал.