在iOS上使用可达性在m3u8(HLS)中选择适当的索引文件

在iOS上使用可达性在m3u8(HLS)中选择适当的索引文件,ios,avplayer,http-live-streaming,m3u8,avplayeritem,Ios,Avplayer,Http Live Streaming,M3u8,Avplayeritem,根据: 如果您是iOS应用程序开发人员,您可以查询用户的设备以 确定初始连接是蜂窝还是WiFi,然后 选择适当的主索引文件 我知道如何使用可达性来确定连接,但是,我不知道如何告诉AVPlayer在m3u8的索引文件中加载不同的文件 我有点困惑,也许是自动的?但我不明白他们为什么建议你这么做。(最终,我希望确保即使在3G/Edge连接上,我的视频也能尽快播放,因此我希望确保加载适当的文件以播放)。他们建议创建多个主播放列表m3u8播放列表,而不是从主播放列表中选择变体(其缺点是,如果网络条件发生变

根据:

如果您是iOS应用程序开发人员,您可以查询用户的设备以 确定初始连接是蜂窝还是WiFi,然后 选择适当的主索引文件

我知道如何使用可达性来确定连接,但是,我不知道如何告诉AVPlayer在m3u8的索引文件中加载不同的文件


我有点困惑,也许是自动的?但我不明白他们为什么建议你这么做。(最终,我希望确保即使在3G/Edge连接上,我的视频也能尽快播放,因此我希望确保加载适当的文件以播放)。

他们建议创建多个主播放列表
m3u8
播放列表,而不是从主播放列表中选择变体(其缺点是,如果网络条件发生变化,则会阻止切换到另一个流)

为了确保用户在首次播放流时有良好的体验,无论初始网络连接如何,都应该有多个主索引文件,这些主索引文件由相同的备用索引文件组成,但具有不同的第一个流

主播放列表中的第一个变体始终首先加载,用于确定播放器可以支持的比特率

因此,您可以为celluar/WiFi使用两个具有不同变体的主文件,也可以使用两个具有相同流但重新排序的主文件,以便第一个流与网络类型一致


在您的代码中,您将确定网络类型并请求一个主URL或另一个。

他们建议创建多个主URL
m3u8
播放列表,而不要从主URL中选择变体(这样做的缺点是,如果网络条件发生变化,会阻止切换到另一个流)

为了确保用户在首次播放流时有良好的体验,无论初始网络连接如何,都应该有多个主索引文件,这些主索引文件由相同的备用索引文件组成,但具有不同的第一个流

主播放列表中的第一个变体始终首先加载,用于确定播放器可以支持的比特率

因此,您可以为celluar/WiFi使用两个具有不同变体的主文件,也可以使用两个具有相同流但重新排序的主文件,以便第一个流与网络类型一致

在代码中,您将确定网络类型并请求一个主URL或另一个