2013-05-14 2 views
0

У меня есть пользовательский элемент управления UISider, я отправляю requestThumbnailImagesAtTimes в MPMoviePlayerController, когда я ползунок управления.Как я могу запросить thumbnailImage из MPMoviePlayController во время слайдера

- (void)sliderPopoverView:(UISlider*)slider 
{ 
    self.currentSliderValue = slider.value; 
    [self.moviePlayer requestThumbnailImagesAtTimes:[NSArray arrayWithObject:[NSNumber numberWithDouble:self.currentSliderValue]] 
              timeOption:MPMovieTimeOptionNearestKeyFrame]; 
} 

- (void)requestFinishThumbnail:(NSNotification*)notification 
{ 
    UIImage *thumbnailImage = [notification.userInfo objectForKey:MPMoviePlayerThumbnailImageKey]; 
    if (thumbnailImage) { 
     _bottomView.sliderPopover.popover.thumbnailView.image = thumbnailImage; 
    } 
} 

затем я могу получить много изображений для показа. но основной поток заблокирован. трудно переместить пользовательский элемент управления. стоило много времени.

ответ

0

Причиной может быть то, что метод

- (void)sliderPopoverView:(UISlider*)slider 

называется каждый раз, когда ползунок перемещается немного. Это заставит ваш MPMoviePlayerController постоянно создавать эскизы. Вероятно, вы должны попытаться уменьшить количество раз, когда вы вызываете метод, который генерирует миниатюры.

+0

Да, я также понимаю это. Я создаю таймер, чтобы запросить предварительный запрос ThumbnailImage. он также блокирует основной поток. он также позволяет пользователю управлять временем. – Junhg

+0

Планируете ли вы новый таймер каждый раз при перемещении ползунка? Или вы планируете новый, когда старый истек? –

+0

планировать новый таймер каждый раз, когда ползунок перемещается. Неисправность таймера, когда он не перемещается. – Junhg

Смежные вопросы