1

我有一个类似于“http://myserver.com/master.m3u8”的流式 URL。(这是虚拟 URL)
这个 URL 在 iPhone 上的 safari 浏览器中可以正常播放。
但是当使用以下代码在应用程序中播放相同内容时,我遇到了一些问题:

NSURL* theURL = [NSURL URLWithString:@"http://myserver.com/master.m3u8"];

MPMoviePlayerViewController* moviePlayerViewController  = [[MPMoviePlayerViewController alloc] initWithContentURL:theURL];
moviePlayerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;        
[self presentMoviePlayerViewControllerAnimated:moviePlayerViewController];

在应用程序中播放时的问题是,一段时间后屏幕变成黑色。但我仍然能够听到音频。
我该如何调试问题出在哪里。

有人可以帮助我遇到类似问题吗?

4

1 回答 1

0

如果您创建标准 m3u8 文件,则视频的最低版本将包含流的纯音频版本。因此,如果带宽太低,播放器可能会切换到此流并仅播放音频。

发生这种情况时,我还没有找到在应用程序中做一些有意义的事情的解决方案(例如暂停视频并等到带宽足以再次播放具有视频的下一个更高版本的流)但是如果你可以调整m3u8 或编码过程,您可以从 m3u8 中删除仅音频版本。然后播放器将切换到最低的视频流并在带宽不足以显示它时暂停。

请记住,在将应用程序提交到商店时,您必须将其提供给应用程序审核团队。Apple 的技术 QA 中提到了这一点:解决 HTTP Live Streaming 的 App Store Approval Issues

注意:由于基线 64 kbps 最大纯音频 HTTP 实时流要求专门用于通过蜂窝网络进行流式传输,如果您的应用程序自我限制为仅 Wi-Fi HTTP 实时流式传输并且您选择不提供基线 64 kbps 音频-only 流,您必须将此信息提供给 App Review 团队。开发人员可以在您的应用程序的 Review Notes 字段中包含此信息。

于 2013-02-13T13:03:22.130 回答