1

我正在將我的網站上的小電影(1-3MB)傳輸到我的iPhone應用程序中。我有一臺slicehost網絡服務器,我認爲它是一個「500MB的切片」。不知道我的頭腦是如何轉化爲帶寬的,但我可以在以後看到。MPMoviePlayerContentPreloadDidFinishNotification似乎比MPMoviePlayerLoadStateDidChangeNotification更可靠

我對MPMoviePlayerLoadStateDidChangeNotification的使用經驗不是很好。 我得到更可靠的結果與舊MPMoviePlayerContentPreloadDidFinishNotification

如果我得到一個MPMoviePlayerContentPreloadDidFinishNotification,影片播放時不會口吃,但如果我用MPMoviePlayerLoadStateDidChangeNotification,電影經常攤位。

我不知道應該檢查哪一個負載狀態:

枚舉{ MPMovieLoadStateUnknown = 0, MPMovieLoadStatePlayable = 1 < < 0, MPMovieLoadStatePlaythroughOK = 1 < < 1, MPMovieLoadStateStalled = 1 < < 2 , };

MPMovieLoadStatePlaythroughOK似乎是我想要的(基於文檔中的描述):

MPMovieLoadStatePlaythroughOK 
    Enough data has been buffered for playback to continue uninterrupted. 
    Available in iOS 3.2 and later. 

但負載狀態永遠不會設置這在我的應用程序。

我錯過了什麼嗎?有一個更好的方法嗎?

+0

我遇到了類似的問題。如果我找到解決方案,我會告訴你。 – logancautrell 2011-02-04 17:41:02

回答

5

只要確保您注意到這是一個標誌,而不是價值

MPMoviePlayerController *mp = [aNotification object]; 
NSLog(@"LoadState: %i", (NSInteger)mp.loadState); 

if (mp.loadState & MPMovieLoadStatePlaythroughOK) 
{ 
    // Do stuff 
} 
+0

好的,謝謝,我會再次考慮一下。您有流媒體的豐富經驗嗎? – user567889 2011-04-10 09:24:42