2011-06-29 16 views
2

我目前正在使用AVPlayer編寫自定義視頻播放器。該視頻播放良好,並在99%的案件工作。但是在尋求時,我偶爾會遇到一個錯誤。我AVPlayerItem的狀態更改爲AVPlayerItemStatusFailed,其 「錯誤」 屬性設置爲:AVErrorMediaServicesWereReset是什麼意思?

錯誤域= AVFoundationErrorDomain 代碼= -11819 「無法完成操作」 的UserInfo = 0x541da00 {NSLocalizedRecoverySuggestion =再試 後來。 , NSLocalizedDescription =無法完成 行動}在HTTP實時流求着時,在iOS 4.0.1發生

錯誤。當手機處於3G或者碼流比特率較高時,會更頻繁地發生這種情況。要重現,請使用iOS 4.0.1上的AVPlayer播放HTTP Live Stream,並通過加載的緩衝區向前尋找 - 錯誤發生時間約爲50%。

我AVError.h發現AVFoundation錯誤代碼-11819對應AVErrorMediaServicesWereReset (以下簡稱「操作無法完成,因爲媒體服務變得不可用」)

有誰知道是什麼原因導致這個錯誤以及如何解決它?我知道一個修復是可能的,因爲MPMoviePlayerViewController(使用AVPlayer)不會出現錯誤。不幸的是,由於外部約束,我不能在我的代碼中使用MPMoviePlayer。

謝謝!

回答

0

事實證明,當在iOS 4.0.1上的HTTP Live Stream中尋找轉發時,AVPlayer是非線性安全的。我的一些代碼叫做setNeedsDisplay或者調用了系統UI代碼,這會在播放時「中斷」播放器。解決方案並不是在用戶尋找位置和玩家從該位置開始玩之間更新視圖。幸運的是,這似乎固定在4.3+。