1

我正在将我的网站上的小电影 (1-3MB) 流式传输到我的 iPhone 应用程序中。我有一个 slicehost 网络服务器,我认为它是一个“500MB 切片”。我不确定这如何转化为带宽,但我稍后会弄清楚。

我对 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.

但在我的应用程序中,加载状态永远不会设置为此。

我错过了什么吗?有一个更好的方法吗?

4

1 回答 1

5

只是确保您注意到它是一个标志,而不是一个值

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

if (mp.loadState & MPMovieLoadStatePlaythroughOK)
{
    // Do stuff
}
于 2011-04-08T11:12:44.753 回答