代码之家  ›  专栏  ›  技术社区  ›  Satyam

iOS-MPMoviePlayerViewController未播放流媒体URL

  •  1
  • Satyam  · 技术社区  · 12 年前

    我有一个类似于“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];
    

    在应用程序中播放时的问题是,过了一段时间,屏幕就会变成黑色。但我仍然能听到音频。
    如何调试问题所在。

    有人能帮助我面对类似的问题吗?

    1 回复  |  直到 12 年前
        1
  •  0
  •   Soph    11 年前

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

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

    请记住,在向商店提交应用程序时,您必须将此信息提供给应用程序审查团队。苹果公司的技术质量保证中提到了这一点: Resolving App Store Approval Issues for HTTP Live Streaming

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