Получить скриншот потокового видео на iphone - PullRequest
7 голосов
/ 22 марта 2011

Как я могу получить скриншот потокового видео на iphone.Я пробовал несколько способов.

  1. UIGetScreenImage () -> Это личное.Приложение будет отклонено, если я его использую.

  2. UIGraphicsBeginImageContext (CGSizeMake (1024, 768));[self.view.layer renderInContext: UIGraphicsGetCurrentContext ()];UIImage * viewImage = UIGraphicsGetImageFromCurrentImageContext ();UIGraphicsEndImageContext ();

    The code above cannot take the screenshot of video layer.
    
  3. MPMoviePlayerController * movie = [[MPMoviePlayerController alloc] initWithContentURL [NSURL URLWithString: @ "myMovie.mp4"]];UIImage * singleFrameImage = [фильм thumbnailImageAtTime: 10 timeOption: MPMovieTimeOptionExact];

    The code above does not work on a streaming video.
    

Что еще можно попробовать, кроме AVFoundation.Спасибо.

1 Ответ

4 голосов
/ 12 мая 2011

Не уверен, что это будет работать, но вы пытались использовать AVPlayer? Он должен предоставить вам доступ к AVURLAsset, который вы можете передать AVAssetImageGenerator.

AVPlayerItem *item = [AVPlayerItem playerItemWithURL:yourURL];
AVPlayer *player = [AVPlayer playerWithPlayerItem:pItem];

//observe 'status'
[playerItem addObserver:self forKeyPath:@"status" options:0 context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
                        change:(NSDictionary *)change context:(void *)context
{ 
    if ([keyPath isEqualToString:@"status"]) {
        AVPlayerItem *item = (AVPlayerItem *)object;
        if (item.status == AVPlayerItemStatusReadyToPlay) {
            AVURLAsset *asset = (AVURLAsset *)item.asset;
            AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
            CGImageRef thumb = [imageGenerator copyCGImageAtTime:CMTimeMakeWithSeconds(10.0, 1.0)
                                                      actualTime:NULL
                                                           error:NULL];
        }
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...