通过 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的主要内容,如果未能解决你的问题,请参考以下文章
Exoplayer for android,尝试流式传输 m3u8 文件并出现错误:没有可用的提取器可以读取流
使用 Nginx 或 Node 流式传输保存的 HLS 视频