MPMoviePlayerController thumbnailImageAtTime:timeOption:简单的情况不起作用

时间:2012-07-16 00:14:10

标签: iphone ios mpmovieplayercontroller

我像这样构建电影播放器​​......

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    player.view.frame = myView.bounds;
    player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [player prepareToPlay];

    [myView addSubview:player.view];
    self.mp = player;

网址指向m3u8网络流。它打得很好。然后我要求这样的图像...

NSTimeInterval currentInterval = self.mp.currentPlaybackTime;
UIImage *image = [self.mp thumbnailImageAtTime:currentInterval timeOption:MPMovieTimeOptionExact];

我已经尝试将currentInterval支持一秒钟。我已经尝试了两种时间选项(精确和关键帧),但图像总是为零。知道为什么吗?感谢。

1 个答案:

答案 0 :(得分:6)

我的理解是MPMoviePlayerController缩略图方法不适用于HTTP直播流(HLS)流;仅适用于文件。不幸的是,我找不到这方面的权威参考,尽管我在过去几周看到或读过它。我自己也有同样的经历。

也就是说,可以使用AVAssetImageGenerator为HLS流生成缩略图。

修改

我刚刚对常规HTTP文件测试了AVAssetImageGenerator,并且通过HLS访问了相同的文件。它能够从HTTP生成缩略图,但对于HLS,AVAssetImageGenerator返回了以下错误:

  

NSLocalizedFailureReason =此媒体不支持该操作。

因此,总而言之,看起来HTTP Live Streaming不支持创建缩略图。如果您的情况允许,您可以在服务器上生成缩略图,使其作为Web服务提供,然后从客户端的服务器请求它们。