Я намерен написать настраиваемый медиа-контроллер для своего приложения. Я планировал использовать seekbar для поиска и отображения прогресса. Попытка реализовать это.
Кто-нибудь имеет такую реализацию или я ошибаюсь?
Я намерен написать настраиваемый медиа-контроллер для своего приложения. Я планировал использовать seekbar для поиска и отображения прогресса. Попытка реализовать это.
Кто-нибудь имеет такую реализацию или я ошибаюсь?
Наконец, я понял это!
Решение, которое я придумал, было примерно таким:
Прежде всего установите максимальный прогресс для поисковой строки в качестве продолжительности видео
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
seekBar.setMax(videoView.getDuration());
seekBar.postDelayed(onEverySecond, 1000);
}
});
Этот runnable будет продолжать обновлять панель прогресса:
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);
}
}
});
Вы установите второй шаг.
Нет, ты на правильном пути. Это очень хорошо для отображения материала, такого как загрузка и текущее местоположение для потоков (носителей).