通过 m3u8 流式传输到 iphone

Posted

技术标签:

【中文标题】通过 m3u8 流式传输到 iphone【英文标题】:Streaming to iphone via m3u8 【发布时间】:2011-02-12 11:43:04 【问题描述】:

我一直在阅读有关通过 m3u8 在 iphone 上进行流式传输的信息,但我不确定我是否遗漏了什么。

有据可查的是,MPMoviePlayerController 只能在 OS 3.1 中全屏播放,因此 iPhone 用户只能观看视频(在我的例子中是听音频)并且无法在应用程序中导航。我还没有找到像你一样通过 m3u8 流式传输的方法,例如,使用 Matt Gallagher 的代码和 mp3...

关于如何包含将播放嵌入式的 m3u8 播放器的任何想法?

谢谢!

【问题讨论】:

我们是在谈论音频还是视频内容? 我想在我的情况下流式传输视频。应该落后于哪个协议? RTSP/彩信/其他? 【参考方案1】:

如果我没记错的话,您想使用标准媒体播放器在 OS 3.1 上播放 mp3 播放列表,而无需在屏幕上显示。

如果这是正确的,我建议您将应用程序窗口移动到视频屏幕的顶部:

appDelegate.window.windowLevel = 2

如果您的主窗口不透明,您将永远看不到播放器。 不知道原生播放器是否支持 M3U 文件,最坏的情况你必须拦截 MPMoviePlayerPlaybackDidFinishNotification 事件,然后播放下一个文件。

希望这会有所帮助。

【讨论】:

【参考方案2】:

如果你要播放音频,你可以使用 AVPlayer (https://developer.apple.com/documentation/avfoundation/avplayer) 或者,如果你也想要预缓冲,你可以使用 AVQueuePlayer (https://developer.apple.com/documentation/avfoundation/avqueueplayer) - 它们都可以使用 HTTP 实时流协议,但是你应该使用苹果提供的工具来分割你的曲目: https://developer.apple.com/streaming/

他们还有一个验证器,可以告诉您流是否正常。问题是 AVPlayer 在 ios 4.0 和 AVQueuePlayer 从 4.1 可用。

【讨论】:

以上是关于通过 m3u8 流式传输到 iphone的主要内容,如果未能解决你的问题,请参考以下文章

使用 Vitamio 库流式传输 m3u8

Exoplayer for android,尝试流式传输 m3u8 文件并出现错误:没有可用的提取器可以读取流

使用 Nginx 或 Node 流式传输保存的 HLS 视频

iPhone MPMoviePlayerController :在流式传输时下载文件并在本地播放它们

通过 monotouch 播放 .m3u8 音频流文件

如何在 iOS 本地播放 .ts(传输流)文件