开发者

MPMoviePlayerContentPreloadDidFinishNotification seems more reliable than MPMoviePlayerLoadStateDidChangeNotification

I am streaming small movies (1-3MB) off my website into my iPhone app. I have a slicehost webserver, I think it's a "500MB slice". Not sure off the top of my head how this translates to bandwidth, but I can figure that out later.

My experience with MPMoviePlayerLoadStateDidChangeNotification is not very good. I get much more reliable results with the old MPMoviePlayerContentPreloadDidFinishNotification

If I get a MPMoviePlayerContentPreloadDidFinishNotification, the movie will play without stuttering, but if I use MPMoviePlayerLoadStateDidChangeNotification, the movie frequently stalls.

I'm not sure which load state to check for:

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

MPMovieLoadStatePlaythroughOK seems to be what I want (based on the description in the documentation):

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

but that load state NEVER gets set to this 开发者_Go百科in my app.

Am I missing something? Is there a better way to do this?


Just making sure that you noticed it's a flag, not a value?

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

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜