我将小型电影(1-3MB)从我的网站流式传输到我的iPhone应用程序中。我有一个slicehost网络服务器,我认为这是一个“500MB切片”。我不确定这是如何转化为带宽的,但我可以稍后解决这个问题。
我对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 :(得分:5)
只是确保您注意到这是一个标志,而不是一个值?
MPMoviePlayerController *mp = [aNotification object];
NSLog(@"LoadState: %i", (NSInteger)mp.loadState);
if (mp.loadState & MPMovieLoadStatePlaythroughOK)
{
// Do stuff
}