【发布时间】:2012-04-26 09:39:10
【问题描述】:
我一直在努力让 AirPlay 与在 AVPlayer 中播放的加密流一起工作。
阅读this page by Apple 对我没有多大好处。
从受保护的 HTTPS 领域提供密钥。在播放开始之前,您的 app 可以使用 NSURLConnection 来验证自己,提供 被隐藏的凭据。
我只能让它在模拟器中工作。不在设备上。
通过 HTTPS 使用 cookie。您的应用可以连接到 HTTPS 服务器并以应用程序定义的方式对应用程序进行身份验证。 然后,您的服务器可以发出适用于关键 URL 的 cookie。你 应该将 cookie 设置为在播放完成后很久才过期。这 然后,服务器必须要求存在有效的会话 cookie 未来对密钥的 GET 请求。 为了获得最大的可靠性,如果到期日期在不久的将来,服务器应该 在响应未来的 GET 请求时更新 cookie 的过期日期。
实际上没有尝试过,因为我没有直接访问服务器设置的权限,但如果没有其他答案出现,我会尝试。
使用应用程序定义的 URL 指定 .m3u8 文件中的密钥 方案。应用应该注册一个自定义的 NSURLProtocol 来处理 对这些 URL 的请求。然后播放器回调到您的应用程序时 它需要加载一个关键的 URL;然后,您的应用可以使用 安全侧通道,并可以将其提供给播放器。
这似乎不起作用,因为 AVPlayer HTTP 连接完全绕过了 NSURLProtocol 系统。您只是无法拦截 AVPlayer 发出的任何 HTTP 请求。
如果有人能以与 AVPlayer 和 AirPlay 配合使用的方式解决加密密钥服务问题,我将不胜感激。
【问题讨论】:
标签: ios encryption avplayer airplay