在 Chromecast 上使用 PlayReady 许可进行流畅的流式传输

Posted

技术标签:

【中文标题】在 Chromecast 上使用 PlayReady 许可进行流畅的流式传输【英文标题】:Smooth Streaming with PlayReady Licensing on Chromecast 【发布时间】:2014-02-13 04:01:04 【问题描述】:

使用最新的 Google ChromeCast SDK,我可以通过带有 MediaLibrary 的 chromecast 并通过 Manifest url 播放非加密的 SmoothStreaming 资产。但是,我无法使加密文件正常工作。我尝试在主机对象上设置 licenseUrl 字段,使用许可证 url 构造对象,并使用许可证的 url 调用 updateLicenseRequestInfo。

我正在测试的资产是:

工作的、未加密的清单: http://playready.directtaps.net/smoothstreaming/ISMAAACLC/Taxi3_AACLC.ism/Manifest

PlayReady 清单: playready.directtaps.net/smoothstreaming/ISMAAACLCPR/Taxi3_AACLC.ism/Manifest 许可证网址: http://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1

在 silverlight 中,我可以选择通过手动许可获取器来重载 onAcquireLicense。这使我能够获取质询字符串,将其传递给我构建的自定义许可证服务,生成许可证,然后通过 processLicense 方法将其传回。 chromecast 是否支持这种自定义许可方案?

【问题讨论】:

【参考方案1】:

我一直在测试相同的 URL,它对我非常有效。

您是否将支持的扩展名从“.ism”修改为“.ism/Manifest”?这是我为测试 SmoothStreaming/PlayReady 流所做的唯一更改,一切都像魅力一样。

【讨论】:

您是否使用许可证进行测试?怎么设置license url? 它只是工作,你只需要为清单 URL 设置一个 SmoothStreaming 协议,就是这样。许可证必须在清单中声明,以便解析 XML 并自动获取密钥。 在我的情况下这不是一个选项,因为 url 不是静态的。它包括挑战信息和一些参数,因此需要在运行时指定。 哦,我明白了。我遇到了同样的问题,并且 AFAIK url 不能包含任何参数,由于 MediaLibrary 处理/解析数据的方式,它不起作用。您可以尝试通过请求中的标头传递参数。 这里:检查“主机”部分:developers.google.com/cast/docs/player 在那里您可以看到如何在标头中发送参数并将它们检索到服务器上。我认为这是目前唯一的方法,但也许一些 Google 工程师可以帮助我们解决这个问题(祈祷)

以上是关于在 Chromecast 上使用 PlayReady 许可进行流畅的流式传输的主要内容,如果未能解决你的问题,请参考以下文章

如何正确的使用 Chromecast+Tutorial?

在某些 Android 设备上未发现 Chromecast 设备

调试在 chromecast 设备上运行的 javascript

如何在所有设备上创建 Chromecast 应用?

Chromecast 的正确标题

来自android的Chromecast不使用样式接收器