請讓我知道MPMoviePlayerController
在視頻播放時prepareToPlay
& play
方法之間的差異。差異和發揮的MPMoviePlayerController
的語法是:
[moviePlayer prepareToPlay];
而且
[moviePlayer play];
請讓我知道MPMoviePlayerController
在視頻播放時prepareToPlay
& play
方法之間的差異。差異和發揮的MPMoviePlayerController
的語法是:
[moviePlayer prepareToPlay];
而且
[moviePlayer play];
由於法說
prepareToPlay
- 不打首發,但它是在過程中進行播放任何(視頻/音頻)。
play
- 說這是做字符串播放任何(視頻/音頻)。
的文件說:
發揮
當前項目的創始播放。 (必需)
- (void)play
討論
如果回放先前暫停,該方法繼續播放它離開的地方;否則,此方法從頭開始播放第一個可用項目 。如果電話播放器在您撥打 方法時未準備好播放,則此方法首先準備好電影播放器,然後啓動 播放。要最大限度地縮短播放延遲,請在調用此方法之前調用prepareToPlay方法 。
要在電影播放器準備播放時收到通知,請註冊 MPMoviePlayerLoadStateDidChangeNotification通知。然後您可以通過訪問電影播放器的loadState屬性來檢查加載狀態 。
Availability在iOS 3.2及更高版本中提供。宣佈 MPMediaPlayback.h
prepareToPlay
準備播放的電影播放器。 (必填)
- (void)prepareToPlay
討論
如果一個電影播放器是不是已經準備好打的時候你 調用play方法,該方法會自動調用此方法。 但是,爲了儘量減少播放延遲,請在致電 播放之前調用此方法。調用此方法可能會中斷電影播放器的音頻會話。 有關中斷以及如何適應它們的信息,請參閱音頻 會話編程指南。
Availability在iOS 3.2及更高版本中提供。
宣佈MPMediaPlayback.h
prepareToPlay
準備的電影播放器進行播放。 (必填)如果電影播放器 在您調用播放方法時尚未準備播放,則該 方法會自動調用此方法。但是,要延遲播放時間,請在調用播放之前調用此方法。
發揮當前項目的
同修播放。 (必填)如果以前暫停的播放爲 ,則此方法會在停止播放的位置繼續播放; 否則,此方法播放第一個可用項目,從 開始。如果您在調用此方法時沒有準備好播放電影播放器,則此方法首先準備好電影播放器,然後開始播放 。要最大限度地減少播放延遲,請在調用此方法之前調用prepareToPlay 方法。
要通過執行耗時的操作的前期減少播放延遲。
爲了播放多媒體文件,例如QuickTime電影,在文件實際播放之前,需要進行不平凡的加載和處理。分開使用play
和prepareToPlay
方法允許開發人員選擇何時可能執行涉及回放的昂貴操作,以最小化當用戶實際按下播放按鈕時的延遲。
例如,標題需要被讀取和解析,並提取元數據。可能需要讀取章節索引,並且播放器可能需要查找文件末尾以讀取塊偏移表,讀取縮略圖,海報幀等等。此外,爲了在用戶按下播放時啓用快速播放,系統可能希望加載,解壓並緩存第一秒左右的音頻和視頻內容。所有這些都會花費大量的時間,並且將由prepareToPlayback
方法執行。
鑑於上述情況,play
方法可以在用戶提名時立即開始播放多媒體內容。顯然,如果媒體尚未準備好,系統會在play
開始時爲您撥打prepareForPlayback
進行必要的準備。
例如,在您的應用程序中,用戶可能會一步選擇多媒體剪輯。您可以立即致電prepareToPlay
,並在預覽窗口中顯示海報框。然後,當用戶按下Play>
按鈕時,內容已準備就緒。
在模擬世界中,一種簡單的並行可能類似於將磁帶穿入卷軸,卷繞卷軸並預拉伸磁帶,將磁頭定位在內容的開始處。然後當您按下Play時,幾乎立即聽到聲音。
什麼時候是視頻文件實際加載到內存和解碼過程中發生的? – 2014-01-11 09:11:17
除了加載標題和元數據外,'prepareForPlayback'還將預緩衝視頻和音頻內容的開始。可能會有1秒緩衝的視頻和音頻數據被加載和解碼,因此可以在調用'play'後立即開始播放。一旦播放開始,更多的塊被加載,解碼並通過流水線進行流式傳輸。 – gavinb 2014-01-11 22:50:24
但在這兩種情況下視頻播放。 視頻可以在兩種語法中播放...... – Myaaoonn 2013-04-04 12:10:49
如果您複製並過去了文檔的各個部分,爲什麼不在其中添加一些額外的功能並將鏈接添加到該文檔中呢? – vikingosegundo 2013-04-04 12:30:08
@Myaaoonn我有同樣的問題,看起來像一個'prepareToPlay'自動播放本地內容的錯誤。我通過將'shouldAutoplay'設置爲'NO'來解決它。 – yonilevy 2014-03-29 14:08:46