【问题标题】:iOS - MPMoviePlayerViewController not playing streaming URLiOS - MPMoviePlayerViewController 不播放流媒体 URL
【发布时间】:2013-02-13 21:03:22
【问题描述】:

我有一个类似于“http://myserver.com/master.m3u8”的流式 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];

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

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

【问题讨论】:

  • 我遇到了同样的问题,屏幕没有变黑,但显示带有音频图像的 Quicktime 徽标。我注意到有时流媒体会从中恢复,但这需要一些时间。问题不是编码问题,因为如果我将使用 3G 的应用程序与使用 WIFI 的另一个应用程序放在一起,两个实时视频会同时停止,但是 WI-FI 恢复得更快。您设法解决了吗?

标签: ios mpmovieplayercontroller


【解决方案1】:

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

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

请记住,在将应用提交到商店时,您必须向应用审核团队提供此信息。 Apple 的技术 QA 中提到了这一点:Resolving App Store Approval Issues for HTTP Live Streaming

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多