10

我正在使用 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 重定向到 location:xxx-abc.myhost.com/ads。显然 AVPlayer 没有 t 在从 someotherhost.com 请求块时发送 myCookie,因为它与 myCookie 的域不匹配。但问题是重定向到 xxx-abc.myhost.com/ads 后,即使重定向 URL 的域也是与 cookie 域匹配的 myhost.com,AVPlayer 也不会发送 myCookie。

请注意,重定向 URL 域与原始流域相同,也与 myCookie 的域相同。由于 AVPlayer 在重定向后不发送 cookie 来下载块,因此 ts 块请求失败并显示 403 Forbidden (No Token)

我在这里做错了什么,或者这看起来像 iOS AVPlayer 中的一个错误?

有没有办法解决这个问题?请分享你的想法。

4

1 回答 1

1

制作一个演示问题的示例,提交错误报告。然后创建一个提到雷达的 DTS 事件,并且您正在为您认为是错误的问题寻找解决方法。

这开辟了两种可能性:

  • 工程师可以确认错误 - 如果未知,他们会修复它,如果它是重复的,您可以请求原始的状态信息
  • DTS 知识渊博,并且有能力询问实际的 AV 工程师如何作为解决方法

这样一来,您就可以花更少的时间寻找可能不会得到除此之外的任何其他答案的地方。

于 2013-08-22T05:34:16.173 回答