如何让 Airplay 使用加密的 HTTPS 流媒体?

Posted

技术标签:

【中文标题】如何让 Airplay 使用加密的 HTTPS 流媒体?【英文标题】:How to get Airplay working with encrypted HTTPS streaming? 【发布时间】: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 配合使用的方式解决加密密钥服务问题,我将不胜感激。

【问题讨论】:

【参考方案1】:

ios 5.1.1 更新和随后的 Apple TV 更新似乎让我苦苦挣扎的麻烦消失了。 iOS 5.1.1 更新不足以单独解决该问题,但与随后的 Apple TV 更新一起,一切都很好,又一次很棒。

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

【讨论】:

你可以使用第 3 代 Apple tv 和 ios 8.1 播放加密的 hls m3u8 吗? 遗憾的是,我已经 3 年没有开发过使用视频播放的应用程序了。我没有跟上发展。对不起!

以上是关于如何让 Airplay 使用加密的 HTTPS 流媒体?的主要内容,如果未能解决你的问题,请参考以下文章

AirPlay 协议 - 如何使用原始 PCM 而不是 ALAC

如何防止在我的 Next/React 项目中使用 iPhone 上的 AirPlay

iOS 和 AirPlay 上的 Widevine 视频流

如何使用 AirPlay 查找可用屏幕?

AVPlayer 与 AWS Cookie 使用 AirPlay

如何在 Ionic 4 中通过 Airplay 在 iPad 和电视上播放视频