2011-08-24 56 views
2

我有一個自定義視頻播放器設置自定義控件,我利用MPVolumeView提供播放按鈕。當用戶選擇使用AirPlay時,他們會與Apple UI進行交互,並且沒有任何事件(我可以找到)說「嗨,視頻正在通過AirPlay播放」。您如何知道用戶何時通過AirPlay播放視頻?

問題是,如果我關閉播放器並重新打開它,它將加載電影(加載狀態更改爲MPMovieLoadStatePlayable),我播放它,然後立即得到播放完成通知,原因是MPMovieFinishReasonPlaybackEnded,並且視頻繼續嘗試通過AirPlay播放。我肯定電影會停下來,每當我關閉播放器時就會釋放它。

如果任何人有任何關於如何處理這個問題的建議,知道一些要聽的事件或對此有任何想法,請告訴我。謝謝!

回答

0

答案在這裏證明是,至少達到4.3,沒有辦法通過代碼得到答案。

這種情況下的問題在於,如何在完成MPMoviePlayerController時處理它。即使視頻播放完畢,在您最終發佈視頻之前,您必須先暫停然後停止播放。就像這樣:

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] init]; 

// use the player. then when done with it: 

[mp pause]; 
[mp stop]; 
[mp release]; 

如果不這樣,那麼你創建的MPMoviePlayerController接下來的時間做,某些屬性不知何故在框架幻像。逐漸播放視頻會導致前一個mp的音頻播放,而新的mp會進行初始緩衝。另外,如果以前的視頻是通過播放播放的,則下一個視頻會收到通知,說明視頻在啓動後會立即完成並出現其他一些不可思議的情況。

長話短說,請按照上述順序處置您的視頻播放器,以避免後續電影播放器​​出現問題。

相關問題