2

我一直在努力让 AirPlay 与在 AVPlayer 中播放的加密流一起工作。

阅读Apple 的这一页对我没有多大好处。

从受保护的 HTTPS 领域提供密钥。在播放开始之前,您的应用可以使用 NSURLConnection 进行身份验证,提供隐藏的凭据。

我只能让它在模拟器中工作。不在设备上。

通过 HTTPS 使用 cookie。您的应用程序可以连接到 HTTPS 服务器并以应用程序定义的方式对应用程序进行身份验证。然后,您的服务器可以发出适用于关键 URL 的 cookie。您应该将 cookie 设置为在播放完成后很久才过期。然后,服务器必须要求在未来对密钥的 GET 请求中存在有效的会话 cookie。为了获得最大的可靠性,如果到期日期在不久的将来,服务器应在其对未来 GET 请求的响应中更新 cookie 的到期日期。

由于我没有直接访问服务器设置的权限,因此实际上没有尝试过,但如果没有其他答案出现,我会尝试。

使用应用程序定义的 URL 方案指定 .m3u8 文件中的密钥。应用应该注册一个自定义的 NSURLProtocol 来处理对这些 URL 的请求。然后,播放器在需要加载关键 URL 时回调到您的应用程序;然后,您的应用可以使用安全侧通道获取密钥并将其提供给播放器。

这似乎不起作用,因为 AVPlayer HTTP 连接完全绕过了 NSURLProtocol 系统。您只是无法拦截 AVPlayer 发出的任何 HTTP 请求。

如果有人能以与 AVPlayer 和 AirPlay 一起使用的方式解决加密密钥服务问题,我将永远感激不尽。

4

1 回答 1

1

似乎我遇到的麻烦随着 iOS 5.1.1 更新和随后的 Apple TV 更新而消失了。iOS 5.1.1 更新不足以单独解决这个问题,但与随后的 Apple TV 更新一起,一切都很好,而且又漂亮了。

正如我在之前的问题中所描述的,现在实现您自己的环回服务器就足够了。

于 2012-05-11T08:55:42.617 回答