【发布时间】:2015-02-04 15:55:36
【问题描述】:
我正在一个应用程序中工作,我可以使用 AVPlayer 实例毫无问题地播放流式收音机的 HLS m3u8 播放列表(仅限音频)。使用 Charles,我可以看到播放列表如何以正常速度正确更新(每 9-10 秒,需要一个媒体片段文件)。当我执行 seekToTime: (及时返回)时,播放器成功地播放了我想要的流,但在 Charles 中,我观察到播放器如何开始下载大量媒体片段文件,消耗大量数据。似乎播放器在此之前下载了所有媒体段文件,然后再次保持正常行为。
我知道正确的行为是在我想要的时间下载媒体片段文件,开始播放它,然后每 9-10 秒不断下载 1 或 2 个媒体片段文件,就像我在无需时移播放流。
我的问题是这是否是正常行为,或者我的 m3u8 播放列表或客户端实现是否有问题。谁能帮我澄清一下?
更新:我可以确认这在 iOS 7 中不会发生,所以这似乎是 iOS 8 引入的错误。
【问题讨论】:
-
尝试使用 [Apple 的 Stream Sample: Bip Bop: devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
-
我做了,它的行为是一样的。我还创建了一个新项目和一个使用三个不同流(包括 Apple 的流)初始化的 AVPlayer 实例,并使用 seekToDate: 到三分钟前。结果是一样的:执行那个方法你可以看到它是如何成功的,但是它会很快下载很多媒体片段文件,所以我猜这是正常的行为,至少使用 AVPlayer。
标签: ios avplayer http-live-streaming avplayeritem seektotime