2012-05-18 19 views
0

A類使用MPMoviePlayerController加載電影。我打電話給prepareToPlay,並等待顯示電影,直到我得到loadState = 3。如果我播放視頻,讓它走到最後,然後再播放,一切正常。但是,如果我以「完成」結束視頻,因此進入MPMovieFinishReasonUserExited退出的原因,並且我再次播放該視頻,則可以點按控件而不是視頻屏幕。當控件消失時,無法再次獲取控件,因爲視圖不響應。這隻發生在iOS 5.1但不是iOS 4.3(包括模擬器和實際設備)。有任何想法嗎?MPMoviePlayerController quirck?用戶在「完成」後退出時再次播放視頻時無法點擊視圖

編輯:

我想出了一件事。我做對的MPMoviePlayerController的觀點的子視圖一些調試和我發現它扮演了我們第一次有:

<MPSwipableView: 0x9b671f0; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x9b67290>> 

而玩它的第二次以後,我們有:

<MPSwipableView: 0x9b671f0; frame = (0 0; 320 480); hidden = YES; autoresize = W+H; layer = <CALayer: 0x9b67290>> 

爲什麼它隱藏了註冊觸摸的視圖嗎?這是一個錯誤?

編輯2:

不幸的是,上述的觀察中似乎是不相關的。我手動將隱藏設置爲NO,並且仍然無法響應點擊。當我重新加載電影時,這沒有問題。

回答

0

我看到這個問題,一旦應用程序做多餘controlStyle的變化。檢查你的設置/拆卸事件處理程序。 確保您只設置了尚未激活的controlStyle。

if (player.controlStyle != newControlStyle) 
{ 
    player.controlStyle = newControlStyle; 
} 

這似乎就沒有任何意義,但放心,它並觸發MPMoviePlayerController的錯誤,如果不這樣做的方式。

1

我遇到了同樣的問題,並遇到這篇文章。我發現,除非在播放視頻之前文件的URL發生更改,否則控件將不會再次出現。爲了解決這個問題,我簡單地釋放以前的MPMoviePlayerController,然後alloc和init一個新的。

將MPMoviePlayerController的文件URL更改爲其他內容,然後回到視頻也可能工作,但我沒有測試過。

+0

我還應該提到,使用iOS 6.0 SDK構建時,在運行6.0及更高版本的設備上運行iOS 5時,即使使用6.0 SDK構建,仍然會損壞此問題(因爲顯然這些設備仍然具有內置的舊功能)。 –

相關問題