我正在使用iOS AVPlayer播放HLS流。在HLS会话开始时,当我收到index.m3u8 URL以响应创建AVPlayerItem时,响应还会设置基于会话的身份验证所需的cookie。假设这个cookie名称是myCookie,它是为域“.myhost.com”创建的。现在一切正常,播放器发送myCookie从xxx.myhost.com/stream下载ts块。随着播放的进行,播放列表最终会更新,播放器会下载更新的播放列表。有时,更新的播放列表包含从其他主机的URL下载的ts块。因此,当尝试使用不同的主机播放块时,播放器请求xxx.someotherhost.com下载块。这导致响应302重定向与位置:xxx-abc.myhost.com/ads。显然AVPlayer在从someotherhost.com请求一个块时不发送myCookie,因为它与myCookie的域不匹配。但问题是在重定向到xxx-abc.myhost.com/ads后,AVPlayer不发送myCookie,即使重定向URL的域名也是myhost.com,也与cookie的域匹配。
请注意,重定向网址域与原始流域相同,也与myCookie的域相同。由于AVPlayer在重定向后没有将cookie发送到下载块,因此ts块请求失败并显示403 Forbidden(No Token)
我在这里做错了什么,或者这看起来像iOS AVPlayer中的错误?
有没有办法解决这个问题?请分享你的想法。
答案 0 :(得分:1)
制作一个演示该问题的示例,提交错误报告。然后创建一个提到Radar的DTS事件,并且您正在寻找一个解决方案来解决您认为的错误。
这开辟了两种可能性:
通过这种方式,您可以花更少的时间来寻找除此之外的任何其他答案。