开发者

MPMoviePlayerContentPreloadDidFinishNotification seems more reliable than MPMoviePlayerLoadStateDidChangeNotification

开发者 https://www.devze.com 2023-02-03 08:56 出处:网络
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, bu

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

精彩评论

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

关注公众号