2011-05-25 49 views
1

我正在開發一個iPhone應用程序,我在其中使用MPMoviePlayerController播放視頻。我使用自定義控件播放視頻。MPMoviePlayerController尋找特定時間線後的空白幀

我有一個顯示視頻時間線的滑塊。使用此用戶可以將電影查找到電影的任何時間線。

當用戶連續地移動滑動件:

  1. 暫停僅用於第一次的視頻; [MPMoviePlayerController-obj pause]
  2. MPMoviePlayerController-obj.currentPlaybackTime = slider.value

當滑塊動作結束:

  1. 播放視頻; [MPMoviePlayerController-obj play]

這從用戶離開滑塊的位置播放電影。但是,當電影完成播放時,會導致空白幀。這種缺陷隨機發生;即不是所有的尋找時間。

獲取空白幀的原因是什麼?我該如何解決這個問題?

感謝和問候, 迪帕

+0

我也注意到,當調試,如果我不設置MPMoviePlayerController-obj.currentPlaybackTime當用戶連續移動滑塊,它工作正常。但是,我想這樣做,因爲用戶需要通過移動滑塊設置時間線來查看框架。 – spd 2011-05-25 07:08:08

+0

此外,當影片完成播放時(MPMoviePlayerPlaybackDidFinishNotification),如果問題存在,則MPmoviePlayerController的當前播放時間爲0;否則它等於電影的持續時間。請有人幫助我嗎? – spd 2011-05-25 09:16:54

+0

對此有何更新? – spd 2011-05-30 09:23:56

回答

2

我不知道這是否會工作,但嘗試initialPlaybackTime設置要麼slider.valuecurrentPlaybackTime

+0

我已經嘗試設置initialPlaybackTime和endPlaybackTime來滑動(最小值和最大值)+ MPMoviePlayerController的currentPlaybackTime。但是,問題仍然存在。此外,我嘗試了以下:在[MPMoviePlayerController-obj播放]後,我再次嘗試將currentPlaybackTime設置爲slide.value。現在,沒有黑框問題。但是,當滑塊動作結束幀重複時(一個是由於Play,另一個是當我設置currentPlaybackTime時)。這會幫助某人幫助我嗎? – spd 2011-05-30 10:32:39

+0

@Till,我的壞。我將刪除該註釋。我錯過了那份文件。 – Ben 2011-05-31 12:41:36

+0

根據我的經驗,當使用流時,initialPlaybackTime不起作用 - 我沒有徹底調查,但在短暫的測試中使用它沒有導致適當的初始搜索。一旦playbackState更改爲播放,我的解決方案就是使用currentPlaybackTime。 – Till 2011-05-31 13:03:38

2

爲確保您的內容沒有缺陷,因此可能觸發該問題,您應該嘗試使用Apple的參考視頻內容複製錯誤的MPMoviePlayerController結果。

我親自與編碼不正確的連接觀察到的許多問題。當處理有損壓縮內容時,奇怪的事情往往會發生。視頻(i幀與p幀)以及音頻(可變比特率)都是如此。

一個是不正確的播放持續時間正在報告。這樣的問題可能會導致意想不到的完成狀態。我看到了MPMoviePlayerController仍然顯示一堆秒播放的情況,即使實際的視頻顯然已經完成。一旦用戶在視頻中查找,這些情況就會頻繁發生。

一旦您確定使用給定的示例文件也出現問題,您應該提交錯誤報告。

+0

感謝您的回覆。我會試試這個。爲了響應'一個被報告的播放時間不合適',我們能否使用AVFoundation調用來生成電影持續時間 – spd 2011-06-09 09:57:55

+0

但是,我們無法更改MPMoviePlayerController的電影持續時間屬性。如何驗證這是否是造成問題的原因? – spd 2011-06-13 07:08:48

+0

我已經給你一些正確編碼內容的選項。該內容的行爲與您自己的內容有何不同? – Till 2011-06-13 19:16:06