我正在开发使用 HLS 的 iOS 应用程序。在我们的视频平台中,我们使用 Nginx proxy_pass 模块在其中一个源不可用时从一个源重定向到另一个源(我们有两个源)。源之间的切换对客户端是透明的,它由平衡器维护,因为客户端播放列表 URI 保持不变。
我们遇到了 AVPlayer 的问题,这种切换工作流程也出现在 QuickTime 中。根据网络日志,接下来发生的事情:
在切换时 AVPlayer 再次请求实时播放列表,当它播放完切换之前加载的块时,它开始播放的不是播放列表中的下一个块,而是第一个块!并且 AVPlayer currentTime 属性没有变化,它继续变化,就像没有打开第一个块一样(在播放列表开头的正常搜索 currentTime 将为 0),没有播放器项目状态发生变化,没有抛出通知,什么都没有特别是访问日志,错误日志是空的。所以我们不能更新用户界面(即搜索栏)并改变用户,他被重定向到另一个直播时间。在我们不应该向用户显示超出特定广播范围的实时流的情况下,问题更加严重。
任何建议如何解决这个问题?还是它的核心 AVPlayer 错误(这个问题也出现在 Quicktime 中)?