2010-08-04 86 views
9

我必須弄清楚從一個視頻轉換到下一個的最佳方式iPhone平滑過渡從一個視頻到另一個

基本思想:一個例子是有一個人走的視頻... ..用戶點擊視頻併發生無縫過渡到運行人員的視頻(簡化示例)

我的第一個想法是創建2個電影播放器​​並使用2個視圖元素之間的轉換。但電影播放器​​不支持。

停止當前視頻,加載新內​​容,然後啓動它是一個解決方案,但不是很優雅。我們正在爲我們的代表製作交互式銷售工具,我們希望這看起來儘可能專業。

當前的想法:如果有一些AVPlayer的示例代碼,它似乎可以使用AVVideoComposition在視頻之間切換?但關於如何發生這種情況的細節目前似乎還沒有。

可能的CLUE:我認爲這很容易,因爲我購買了一款名爲Live Cams HD的應用程序,它一次顯示16個不同的視頻源。

任何想法?提前致謝!

+0

在iOS 4.1中推出的AVQueuePlayer看起來像是一個自然的解決方案,但我仍然無法順利地從一個剪輯切換到下一個剪輯。 – 2011-02-03 12:56:40

+0

這個問題有什麼進展? – Rizon 2011-04-13 15:05:38

+0

您必須將隊列播放器的actionAtItemEnd設置爲AVPlayerActionAtItemEndAdvance,並且同時在隊列中至少有兩個相同視頻(AVPlayerItem)的副本,以便隊列播放器可以自行適當地前進到下一個項目。這兩者之間會有短暫的閃光,但我發現可以接受並且可以通過將父視圖的背景設置爲視頻的第一幀的屏幕截圖來容易地解決。 – 2014-06-10 19:03:48

回答

0

在第一個視頻播放完除最後一幀以外的每一幀後,快速切換到帶有最後一幀圖像(基本上是最後一幀)的視圖,然後轉換到第一個圖像的視圖下一個視頻的幀,並啓動該視頻。

或者您可以創建一個包含所有幀的動畫(對您的視頻進行編程),這將使其可以自定義,但質量可能不會很好,並且CPU使用率可能會激增,因此您必須撥打電話在那一個上。

8

史蒂夫,簡短的回答是,你不能使用AVPlayer獲得你想要的結果類型。 iOS中包含的h.264視頻邏輯非常適合播放視頻和視頻/音頻,但它確實吸引了啓動/停止以及從一個剪輯切換到另一個剪輯。原因是有很多緩衝需要加載並開始在硬件中播放h.264視頻。基本上,您需要滾動自己的代碼來爲您的視圖設置UIImage/CGImageRef,以便通過簡單地從一個UIImage對象數組切換到另一個剪輯來輕鬆地從一個剪輯切換到另一個剪輯。當然,這很容易說明,但並不容易實現。

我會建議你評估現有的代碼已經實現了這個邏輯,而不是自己滾動。例如,看看這個StreetFighter演示應用程序。它展示瞭如何使用一系列顯示角色正在踢球,打出一拳或擲出火球的片段來構建iPhone UI等非常簡單的遊戲。結果是這樣的:

enter image description here

我也寫了一篇博客文章seamless-video-looping-on-ios。你當然可以推出自己的代碼來完成所有這些工作,但是我建議你在鏈接的網站上閱讀更多關於我的圖書館的內容,因爲它會爲你節省很多時間。