MPMoviePlayer控制器缩略图图像在时间:时间选项:简单大小写不起作用



我像这样构建电影播放器。。。

    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;

url指向一个m3u8 web流。它打得很好。然后我要一张这样的照片。。。

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

我已尝试将currentInterval备份一秒钟。我尝试了两个时间选项(精确和关键帧),但图像始终为零。知道为什么吗?谢谢

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

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

编辑:

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

NSLocalizedFailureReason=此介质不支持该操作。

总之,HTTP直播似乎不支持创建缩略图。如果情况允许,您可以在服务器上生成缩略图,将其作为web服务提供,然后从客户端的服务器请求。

最新更新