0

カスタムUISiderコントロールがあり、コントロールをスライドさせると、requestThumbnailImagesAtTimesをMPMoviePlayerControllerに送信します。

- (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;
    }  
}

それから私はショーのためのたくさんのイメージを受け取ることができます. しかし、メインスレッドがブロックされました。カスタム コントロールをスライドするのは難しいです。多くの時間を費やします。

4

1 に答える 1

0

その理由として考えられるのは、方法

- (void)sliderPopoverView:(UISlider*)slider

スライダーが少し移動するたびに呼び出されます。これにより、MPMoviePlayerController は常にサムネイルを生成します。サムネイルを生成するメソッドを呼び出す回数を減らすようにしてください。

于 2013-05-14T07:22:25.083 に答える