Есть ли способ настроить внешний вид или, по крайней мере, положение ползунка воспроизведения фильма в MPMovidePlayer?
Пользовательский ползунок прогресса в MPMoviePlayer
Ответы (3)
Скройте существующие элементы управления с помощью MPMovieControlStyle
, установите для этого параметра значение MPMovieControlStyleNone
.
Теперь add
ваш custom control
в MPMoviePlayer's
представлении.
См. пример uislider-to-control-avaudioplayer, поскольку он такой же, как MPMoviePlayer
имеет currentPlaybackTime
См. ссылку mpmovieplayercontroller-buffering-state.
См. mpmovieplayercontroller-when-will-i -узнайте, что-загрузка-файла-доступа.
Для этого вам нужно сделать свой собственный слайдер. например, вы можете скрыть индикатор выполнения MPMoviePlayerController и создать свой собственный индикатор выполнения, вы можете скрыть индикатор выполнения MPMoviePlayerController с помощью этого кода
moviePlayerController.controlStyle = MPMovieControlStyleNone;
Затем вы можете создать собственный индикатор выполнения
UISlider *progressbar;
[progressbar setMinimumTrackImage:[UIImage imageNamed:@"min.png"] forState:UIControlStateNormal];//you can set the background for which you have progressed the video
[progressbar setMaximumTrackImage:[UIImage imageNamed:@"max.png"] forState:UIControlStateNormal];//you can set the background for which you have left the video
[progressbar setThumbImage:[UIImage imageNamed:@"thumb.png"] forState:UIControlStateNormal];//you can set the thumb image for you progress bar.
Это будет ползунок, вы можете обновить положение ползунка в потоке.
вот код для прогресса слайдера, такого как MPMoviePlayerController
«Используйте NSTimer для плавного перемещения ползунка в качестве индикатора выполнения MPMoviePlayerController»
// вы можете изменить scheduleTimerWithTimeInterval в соответствии с вашими потребностями
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateSlider) userInfo:nil repeats:YES];
«Установите для currentPlaybackTime значение ползунка»
- (void)updateSlider {
slider1.value = self.moviePlayerController.currentPlaybackTime;
}