1

私のiPhoneアプリに私のウェブサイトから小さなムービー(1〜3MB)をストリーミングしています。私はslicehostウェブサーバを持っています、私はそれが "500MBのスライス"だと思います。これがどのように帯域幅に変換されるのかわからないが、後でそれを理解することができる。MPMoviePlayerContentPreloadDidFinishNotificationはMPMoviePlayerLoadStateDidChangeNotificationよりも信頼性が高いようです

私のMPMoviePlayerLoadStateDidChangeNotificationでの経験はあまり良くありません。 は私が古いMPMoviePlayerContentPreloadDidFinishNotification

とはるかに信頼性の高い結果を得る私はMPMoviePlayerContentPreloadDidFinishNotificationを取得する場合、ムービーは吃音せずに再生されますが、私はMPMoviePlayerLoadStateDidChangeNotificationを使用している場合、ムービーが頻繁に失速します。

enumの 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

答えて

5

というフラグではなく、に気づいたことを確認してください。

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

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

OKありがとう、私はある時点でもう一度それを調べます。ストリーミングで良い経験をしましたか? – user567889

+0

マイナーな問題ですが、すべての難しい作業はサーバー側で行われます。 HTTPライブストリーミングはこれまでのところ素晴らしいです:) – JOM

+0

Webサーバーからロードされたビデオのカウントダウンがありました。最初に、私は 'MPMovieLoadStatePlayable'を使ってカウントダウンとビデオのタイムラグにつながっていました。 'MPMovieLoadStatePlaythroughOK'を使用すると、この問題が解決されました。ありがとう – Besi

関連する問題