我有一个 HTTP Live 流媒体服务器设置,它提供分段的 mp3 音频内容(URL 指向 playlist.m3u8 索引文件)。我需要构建一个 iOS 客户端应用程序来使用这个音频流,而不使用任何标准的 Apple 控件/UI。它应该在后台播放流,我想使用我自己的自定义 UI 来提供控件。
由于内容是纯音频,我不想使用 MPMoviePlayerController 类,因为它接管了 UI。我尝试过使用 AVAudioPlayer,尽管它不适用于网络流,毫无疑问,它无法播放错误代码“-43”:NSOSStatusErrorDomain。
我还尝试创建一个高度和宽度为 1 像素的 UIWebView,并将其指向服务器上的 playlist.m3u8 文件。这可行,但不幸的是我仍然丢失了 UI,因为 UIWebView 只是将回放任务委托给 QuickTime 播放器,该播放器在我的应用程序中启动,并为 iOS 3.xx 设备提供全屏显示。
基本上,在我看来,Apple 似乎没有提供任何客户端 API 来消费 HTTP Live Streaming音频流,并且开发人员被迫将 UI 让给 QuickTime 播放器,该播放器播放带有 QT 徽标篡夺屏幕的流。呃……
我很想知道是否有人有建议可以帮助我解决上述问题。否则,我的 B 计划是放弃 HTTP Live Streaming 并使用著名的Matt Gallagher 经典流实现。但是,我有点担心Apple 的指导方针,该指导方针明确表明,对于预期通过蜂窝网络(我的应用程序)发送大量音频或视频内容的应用程序,需要使用 HTTP Live 流媒体。这是否意味着我的 B 计划实施容易被 Apple 拒绝?有什么方法可以规避这个准则?