我正在使用iOS AVPlayer播放HLS流.在HLS会话的开始,当我收到index.m3u8 URL以响应创建AVPlayerItem时,该响应还设置了一个基于会话的验证所需的cookie.说这个cookie名称是myCookie,它是为域“.myhost.com”创建的.现在一切正常,播放器发送myCookie从xxx.myhost.com/stream下载ts块.随着播放继续,播放列表最终被更新,播放器下载更新的播放列表.有时,更新的播放列表包含一个ts块以从另一个主机从URL下载.因此,当尝试用不同的主机播放大块时,播放器请求xxx.someotherhost.com下载该块.这导致响应302重定向到位置:xxx-abc.myhost.com/ads.显然AVPlayer并不发送myCookie同时请求来自someotherhost.com的一个块,因为它不符合myCookie的域.但问题是重定向到xxx-abc.myhost.com/ads后,AVPlayer不会发送myCookie,即使重定向URL的域是myhost.com也与cookie的域匹配.
请注意,重定向网址域与原始流域相同,也与myCookie的域相同.由于AVPlayer在重定向后不发送cookie以下载块,所以ts块请求失败,403 Forbidden(No Token)
我在这里做错了什么,或者看起来像iOS AVPlayer中的一个bug?
有没有办法解决这个问题?请分享你的想法.
解决方法
制作一个演示该问题的示例,提交错误报告.然后创建一个提到雷达的DTS事件,并且您正在寻找一个解决方案,以便您认为是一个错误.
这打开了两种可能性:
>工程师可以确认错误 – 如果不知道他们会修复它,如果它是重复的,您可以请求原始状态信息
> DTS具有足够的知识,有能力查询实际的AV工程师如何解决这个问题
这样你就可以花更少的时间找到可能不会得到任何其他答案的地方.