2012-07-16 69 views
0

我打造的電影播放這樣的...的MPMoviePlayerController thumbnailImageAtTime:timeOption:簡單的情況下不能正常工作

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流。它玩的很好。然後我要求一個這樣的圖像...

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

我試過將currentInterval支持一秒鐘。我已經嘗試了兩個時間選項(確切和關鍵幀),但圖像始終爲零。任何想法爲什麼?謝謝。

回答

6

我的理解是,MPMoviePlayerController縮略圖方法不適用於HTTP實時流(HLS)流;僅用於文件。不幸的是,我找不到這方面的權威性參考資料,儘管在過去幾周裏我看到或讀過它。我自己也有同樣的經歷。

也就是說,可能使用AVAssetImageGenerator爲HLS流生成縮略圖。

編輯:

我剛剛測試AVAssetImageGenerator對一個普通的HTTP文件,並在HLS訪問同一個文件。它能夠產生從HTTP一個縮略圖,但對於HLS之一,AVAssetImageGenerator返回以下錯誤:

NSLocalizedFailureReason=The operation is not supported for this media.

因此,簡言之,它看起來好像HTTP實時流不支持創建縮略圖。如果您的情況允許,您可以在服務器上生成縮略圖,將它們作爲Web服務提供,然後從客戶端的服務器請求它們。

+0

壞消息,但一個很好的答案。謝謝。 – danh 2012-07-18 21:39:42

+0

@Martin我不得不採取縮略圖web服務的方式。我們的分段器必須每隔10秒產生一個縮略圖,它看起來不錯,但它不是我尋找的精度。問候 – javiergov 2012-09-12 14:24:38

+0

好的回答.... – 2013-01-30 12:06:49