PlayReady DRM

本主题介绍了如何向通用 Windows 平台 (UWP) 应用添加 PlayReady 保护的媒体内容。

PlayReady DRM 使开发人员能够创建能够向用户提供 PlayReady 内容的 UWP 应用,同时强制执行内容提供程序定义的访问规则。 本部分介绍对 Windows 10 Microsoft PlayReady DRM 所做的更改,以及如何修改 PlayReady UWP 应用以支持从以前的 Windows 8.1 版本更改为 Windows 10 版本所做的更改。

主题 说明
硬件 DRM 本主题概述如何将基于 PlayReady 硬件的数字权限管理(DRM)添加到 UWP 应用。
使用 PlayReady 进行自适应流式处理 本文介绍如何将使用 Microsoft PlayReady 内容保护的多媒体内容自适应流式处理添加到通用 Windows 平台 (UWP) 应用。 此功能当前支持 Http 实时流 (HLS) 和 HTTP 动态流 (DASH) 内容的播放。

PlayReady DRM 中的新增功能

以下列表描述了对适用于 Windows 10 的 PlayReady DRM 所做的新功能和更改。

  • 添加了硬件数字权限管理(HWDRM)。

    基于硬件的内容保护支持允许在多个设备平台上安全播放高清(HD)和超高清(UHD)内容。 利用硬件安全保护密钥材料(包括私钥、内容密钥和任何其他用于派生或解锁上述密钥的密钥材料)以及解密的压缩和未压缩视频示例。 使用硬件 DRM 时,两个未知的启用程序(使用未知的启用程序/使用下调功能对未知的播放)都具有意义,因为 HWDRM 管道始终知道正在使用的输出。 有关详细信息,请参阅 硬件 DRM

  • PlayReady 不再是 appX 框架组件,而是内置操作系统组件。 命名空间已从 Microsoft.Media.PlayReadyClient 更改为 Windows.Media.Protection.PlayReady

  • 定义 PlayReady 错误代码的以下标头现在属于 Windows 软件开发工具包(SDK):Windows.Media.Protection.PlayReadyErrors.h 和 Windows.Media.Protection.PlayReadyResults.h。

  • 提供对非永久性许可证的主动获取。

    以前版本的 PlayReady DRM 不支持主动获取非永久性许可证。 此功能已添加到此版本。 这可以减少到第一帧的时间。 有关详细信息,请参阅 在播放前主动获取非永久性许可证。

  • 提供在一条消息中获取多个许可证。

    允许客户端应用在一条许可证获取消息中获取多个非永久性许可证。 这可以通过在用户仍在浏览内容库时获取多个内容的许可证来缩短到第一帧的时间;当用户选择要播放的内容时,这可以防止许可证获取延迟。 此外,它还允许通过启用包含多个密钥标识符的内容标头(KID)来加密音频和视频流以分隔密钥;这样,单个许可证获取即可获取内容文件中所有流的所有许可证,而无需使用自定义逻辑和多个许可证获取请求来实现相同的结果。

  • 添加了实时过期支持或有限的持续时间许可证(LDL)。

    提供在播放期间设置许可证的实时到期时间并顺利从过期许可证过渡到另一个(有效)许可证的功能。 当结合在一条消息中获取多个许可证时,这允许应用异步获取多个 LDL,而用户仍在浏览内容库,并且一旦用户选择了要播放的内容,则仅获取更长的持续时间许可证。 然后,播放将更快地启动(因为许可证已经可用),并且,由于应用将在 LDL 过期时获取更长的持续时间许可证,因此可以顺利地继续播放到内容的末尾,而不会中断。

  • 添加了非永久性许可证链。

  • 添加了对非永久性许可证上基于时间的限制(包括过期、首次播放后过期和实时过期)的支持。

  • 添加了 HDCP 类型 1(Windows 10 上的版本 2.2)策略支持。

    有关详细信息,请参阅 注意事项

  • Miracast 现在隐式作为输出。

  • 添加了安全停止。

    安全停止为 PlayReady 设备提供了一种自信地向媒体流式处理服务断言的方法,即媒体播放已针对任何给定内容停止。 此功能可确保媒体流式处理服务针对给定帐户在不同设备上提供准确的使用限制和报告。

  • 添加了音频和视频许可证分离。

    单独的曲目阻止视频解码为音频;启用更可靠的内容保护。 新兴标准要求为音频和视频曲目提供单独的密钥。

  • 添加了 MaxResDecode。

    添加了此功能,以将内容播放限制为最大分辨率,即使拥有功能更强大的密钥(但不是许可证)。 它支持使用单个键对多个流大小进行编码的情况。

以下新接口、类和枚举已添加到 PlayReady DRM:

已创建一个新示例,演示如何使用 PlayReady DRM 的新功能。 该示例可从代码示例浏览器下载。

注意事项

  • PlayReady DRM 现在支持 HDCP 类型 1(在 HDCP 版本 2.1 或更高版本中受支持)。 PlayReady 在设备要强制执行的许可证中携带 HDCP 类型限制策略。 在 Windows 10 上,此策略将强制实施 HDCP 2.2 或更高版本。 可以在 PlayReady Server v3.0 SDK 许可证中启用此功能(服务器使用 HDCP 类型限制 GUID 控制许可证中的此策略)。 有关详细信息,请参阅 PlayReady 合规性和可靠性规则
  • 硬件 DRM 不支持 Windows 媒体视频(也称为 VC-1)(请参阅 替代硬件 DRM)。
  • PlayReady DRM 现在支持高效视频编码(HEVC /H.265)视频压缩标准。 若要支持 HEVC,你的应用必须使用通用加密方案 (CENC) 版本 2 内容,其中包括将内容的切片标头保留清楚。 有关详细信息,请参阅 ISO/IEC 23001-7 信息技术 -- MPEG 系统技术 -- 第 7 部分:ISO 基本媒体文件格式文件中的常见加密(规范版本 ISO/IEC 23001-7:2015 或更高版本)。 Microsoft还建议对所有 HWDRM 内容使用 CENC 版本 2。 此外,某些硬件 DRM 将支持 HEVC,有些硬件不会(请参阅 替代硬件 DRM)。
  • 若要利用某些新的 PlayReady 3.0 功能(包括但不限于基于硬件的客户端的 SL3000、在一条许可证获取消息中获取多个非永久性许可证,以及针对非永久性许可证的基于时间的限制),PlayReady 服务器必须是 Microsoft PlayReady Server 软件开发工具包 v3.0.2769 版本或更高版本。
  • 根据内容许可证中指定的输出保护策略,如果已连接的输出不支持这些要求,则最终用户的媒体播放可能会失败。 下表列出了结果发生的一组常见错误。 有关详细信息,请参阅 PlayReady 合规性和可靠性规则
错误 说明
ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP 0xC0262513 许可证的输出保护策略要求监视器参与 HDCP,但 HDCP 无法参与。
MF_E_POLICY_UNSUPPORTED 0xC00D7159 许可证的输出保护策略要求监视器参与 HDCP 类型 1,但 HDCP 类型 1 无法参与。
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET 0x8004CD22 仅当在硬件 DRM 下运行时,才会发生此错误代码。 许可证的输出保护策略要求监视器参与 HDCP 或减少内容的有效分辨率,但 HDCP 无法参与并且无法降低内容的有效分辨率,因为硬件 DRM 不支持减少内容分辨率。 在软件 DRM 下,内容播放。 请参阅 有关使用硬件 DRM 的注意事项。
ERROR_GRAPHICS_OPM_NOT_SUPPORTED 0xC0262500 图形驱动程序不支持输出保护。 例如,监视器通过 VGA 进行连接,或者未安装用于数字输出的相应图形驱动程序。 在后一种情况下,安装的典型驱动程序是Microsoft基本显示适配器,并安装适当的图形驱动程序将解决此问题。

输出保护

以下部分介绍将 PlayReady DRM for Windows 10 与 PlayReady 许可证中的输出保护策略配合使用时的行为。

PlayReady DRM 支持Microsoft PlayReady 可扩展媒体权限规范中包含的输出保护级别。 本文档位于 PlayReady 许可产品随附的文档包中。

注意

许可服务器可以设置的输出保护级别的允许值受 PlayReady 合规性规则的约束

PlayReady DRM 仅允许在 PlayReady 合规性规则中指定的输出连接器上播放具有输出保护策略的内容。 有关 PlayReady 合规性规则中指定的输出连接器术语的详细信息,请参阅 PlayReady 合规性和可靠性规则的已定义术语。

本部分重点介绍适用于 Windows 10 的 PlayReady DRM 和适用于 Windows 10 的 PlayReady 硬件 DRM 的输出保护方案,这些方案在某些 Windows 客户端上也可用。 使用 PlayReady HWDRM 时,将从 Windows TEE 实现中强制实施所有输出保护(请参阅 硬件 DRM)。 因此,某些行为不同于使用 PlayReady SWDRM(软件 DRM):

  • 对未压缩数字视频 270 的输出保护级别(OPL)的支持:适用于 Windows 10 的 PlayReady HWDRM 不支持下分辨率,并将强制实施 HDCP(高带宽数字内容保护)。 建议 HWDRM 的高定义内容具有大于 270 的 OPL(尽管不需要)。 此外,还应在许可证(HDCP 版本 2.2 或更高版本)中设置 HDCP 类型限制。
  • 与 SWDRM 不同,使用 HWDRM 时,基于支持最少的监视器对所有监视器强制实施输出保护。 例如,如果用户连接了两个监视器,其中一个监视器支持 HDCP,而另一个监视器不支持 HDCP,则即使仅内容在支持 HDCP 的监视器上呈现,播放也会失败。 在 SWDRM 中,只要内容仅在支持 HDCP 的监视器上呈现,内容就会播放。
  • 除非内容密钥和许可证满足以下条件,否则不保证客户端使用 HWDRM 并安全:
    • 用于视频内容密钥的许可证必须具有最低安全级别 3000。
    • 音频必须加密为与视频不同的内容密钥,并且用于音频的许可证必须具有最低安全级别 2000。 此外,音频可能保持清晰。
  • 所有 SWDRM 方案都要求用于音频和视频内容密钥的 PlayReady 许可证的最低安全级别较低或等于 2000。

输出保护级别

下表概述了 PlayReady 许可证中各种 OPL 之间的映射,以及 PlayReady DRM for Windows 10 如何强制执行它们。

视频

OPL 压缩的数字视频 未压缩的数字视频 模拟电视
任意 HDMI、DVI、DisplayPort、MHL 组件、复合
100 N/A\* 传递内容 传递内容
150 N/A\* 当 CGMS-A CopyNever 参与或 CGMS-A 无法参与时传递内容
200 当使用 CGMS-A CopyNever 时传递内容
250 尝试使用 HDCP,但无论结果如何,都传递内容 N/A\*
270 SWDRM:尝试吸引 HDCP。 如果 HDCP 无法参与,电脑将每帧的有效分辨率限制为 520,000 像素,并传递内容 HWDRM:使用 HDCP 传递内容。 如果 HDCP 无法参与,则会阻止播放到 HDMI/DVI 端口
300

**当 HDCP 类型限制未定义时:**使用 HDCP 传递内容。 如果 HDCP 无法参与,则会阻止播放到 HDMI/DVI 端口。

**当 HDCP 类型限制已定义时**:使用 HDCP 2.2 传递内容,并将内容流类型设置为 1。 如果 HDCP 无法参与或无法将内容类型设置为 1,则会阻止播放到 HDMI/DVI 端口。

400 无论后续 OPL 值如何,Windows 10 永远不会将压缩的数字视频内容传递到输出。 有关压缩的数字视频内容的详细信息,请参阅 PlayReady 产品的符合性规则。 N/A\*
500

* 并非所有输出保护级别的值都可以通过授权许可服务器设置。 有关详细信息,请参阅 PlayReady 符合性规则

音频

OPL 压缩的数字音频 未压缩的数字音频 模拟或 USB 音频
HDMI、DisplayPort、MHL HDMI、DisplayPort、MHL 任意
100 传递内容 传递内容 传递内容
150 不传递内容
200
250 在 HDMI、DisplayPort 或 MHL 上参与 HDCP 或 SCMS 并设置为 CopyNever 时传递内容
300 在 HDMI、DisplayPort 或 MHL 上参与 HDCP 时传递内容

Miracast

PlayReady DRM 允许在 HDCP 2.0 或更高版本参与后立即通过 Miracast 输出播放内容。 但是,在 Windows 10 上,Miracast 被视为 数字 输出。 有关 Miracast 方案的详细信息,请参阅 PlayReady 合规性规则。 下表概述了 PlayReady 许可证中各种 OPL 之间的映射,以及 PlayReady DRM 如何在 Miracast 输出上强制执行它们。

OPL 压缩的数字音频 未压缩的数字音频 压缩的数字视频 未压缩的数字视频
100 在 HDCP 2.0 或更高版本参与时传递内容。 如果无法参与,则不会传递内容 在 HDCP 2.0 或更高版本参与时传递内容。 如果无法参与,则不会传递内容 N/A\* 在 HDCP 2.0 或更高版本参与时传递内容。 如果无法参与,则不会传递内容
150 不传递内容 N/A\*
200
250 在 HDCP 2.0 或更高版本参与时传递内容。 如果无法参与,则不会传递内容
270 N/A\*
300 在 HDCP 2.0 或更高版本参与时传递内容。 如果无法参与,则不会传递内容 不传递内容

**当 HDCP 类型限制未定义时:**当使用 HDCP 2.0 或更高版本时,传递内容。 如果无法参与,则不会传递内容。

**当 HDCP 类型限制已定义时:**使用 HDCP 2.2 传递内容,并将内容流类型设置为 1。 如果 HDCP 无法参与或内容类型无法设置为 1,则不会传递内容。

400 N/A\* 无论后续 OPL 值如何,Windows 10 永远不会将压缩的数字视频内容传递到输出。 有关压缩的数字视频内容的详细信息,请参阅 PlayReady 产品的符合性规则。 N/A\*
500

* 并非所有输出保护级别的值都可以通过授权许可服务器设置。 有关详细信息,请参阅 PlayReady 符合性规则

其他显式输出限制

下表介绍了适用于 Windows 10 的 PlayReady DRM 实现显式数字视频输出保护限制。

场景 GUID 如果... 则...
最大有效分辨率解码大小 9645E831-E01D-4FFF-8342-0A720E3E028F 连接的输出是:数字视频输出、Miracast、HDMI、DVI 等。

在限制为以下内容时传递内容:

  • (a) 框架的宽度必须小于或等于最大帧宽度(以像素为单位),帧的高度小于或等于最大帧高度(以像素为单位),或者
  • (b) 帧的高度必须小于或等于最大帧宽度(以像素为单位),帧宽度小于或等于最大帧高度(以像素为单位)
HDCP 类型限制 ABB2C6F1-E663-4625-A945-972D17B231E7 连接的输出是:数字视频输出、Miracast、HDMI、DVI 等。 使用 HDCP 2.2 传递内容,并将内容流类型设置为 1。 如果 HDCP 2.2 无法参与或无法将内容类型设置为 1,则不会传递内容。 还必须指定大于或等于 271 的值的未压缩数字视频输出保护级别

下表介绍了适用于 Windows 10 的 PlayReady DRM 实现显式模拟视频输出保护限制。

场景 GUID 如果... 则...
模拟计算机监视器 D783A191-E083-4BAF-B2DA-E69F910B3772 连接的输出为:VGA、DVI–模拟等。 SWDRM: 电脑将有效分辨率限制为每个帧 520,000 epx 并传递内容 HWDRM: 不传递内容
模拟组件 811C5110-46C8-4C6E-8163-C0482A15D47E 连接的输出为:组件 SWDRM: 电脑将有效分辨率限制为每个帧 520,000 epx 并传递内容 HWDRM: 不传递内容
模拟电视输出 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 模拟电视 OPL 小于 151 CGMS-A 必须参与
225CD36F-F132-49EF-BA8C-C91EA28E4369 模拟电视 OPL 小于 101,许可证不包含 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 必须尝试 CGMS-A 参与,但无论结果如何,内容都可能会播放
自动增益控制和色条 C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA 将分辨率小于或等于 520,000 像素的内容传递给模拟电视输出 根据表 3.5.7.3,在分辨率小于 520,000 像素时,仅在分辨率小于 520,000 像素时设置 AGC 和 NTSC 的颜色条带信息。 符合性规则中的
仅数字输出 760AE755-682A-41E0-B1B3-DCDF836A7306 连接的输出是模拟的 不传递内容

注意

使用适配器保护程序(如“Mini DisplayPort to VGA”)播放时,Windows 10 会将输出视为数字视频输出,并且无法强制实施模拟视频策略。

下表介绍了适用于 Windows 10 的 PlayReady DRM 实现,这些实现支持在其他情况下播放。

场景 GUID 如果... 则...
未知输出 786627D8-C2A6-44BE-8F88-08AE255B01A7 如果无法合理确定输出,或者无法使用图形驱动程序建立 OPM SWDRM: 传递内容 HWDRM: 不传递内容
具有收缩的未知输出 B621D91F-EDCC-4035-8D4B-DC71760D43E9 如果无法合理确定输出,或者无法使用图形驱动程序建立 OPM SWDRM: 电脑将有效分辨率限制为每个帧 520,000 epx 并传递内容 HWDRM: 不传递内容

先决条件

在开始创建受 PlayReady 保护的 UWP 应用之前,需要在系统上安装以下软件:

  • Windows 10。
  • 如果要为 UWP 应用的 PlayReady DRM 编译任何示例,则必须使用 Microsoft Visual Studio 2015 或更高版本来编译示例。 你仍然可以使用 Microsoft Visual Studio 2013 从适用于 Windows 8.1 应用商店应用的 PlayReady DRM 编译任何示例。

PlayReady UWP 应用迁移指南

本部分包含有关如何将现有 PlayReady Windows 8.x 应用商店应用迁移到 Windows 10 的信息。

Windows 10 上的 PlayReady UWP 应用的命名空间已从 Microsoft.Media.PlayReadyClient 更改为 Windows.Media.Protection.PlayReady。 这意味着需要搜索旧命名空间并将其替换为代码中的新命名空间。 你仍将引用 winmd 文件。 它是 Windows 10 操作系统上的 windows.media.winmd 的一部分。 它位于 windows.winmd 中,作为 TH 的 Windows SDK 的一部分。 对于 UWP,它在 windows.foundation.univeralappcontract.winmd 中引用。

若要播放受 PlayReady 保护的高清(HD)内容(1080p)和超高清(UHD)内容,需要实现 PlayReady 硬件 DRM。 有关如何实现 PlayReady 硬件 DRM 的信息,请参阅 硬件 DRM

硬件 DRM 不支持某些内容。 有关禁用硬件 DRM 和启用软件 DRM 的信息,请参阅 替代硬件 DRM

对于媒体保护管理器,请确保代码具有以下设置(如果尚未设置):

var mediaProtectionManager = new Windows.Media.Protection.MediaProtectionManager();

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemId"] = 
             '{F4637010-03C3-42CD-B932-B48ADF3A6A54}'
var cpsystems = new Windows.Foundation.Collections.PropertySet();
cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = 
                "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput";
mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionContainerGuid"] = 
                "{9A04F079-9840-4286-AB92-E65BE0885F95}";

在播放之前主动获取非永久性许可证

本部分介绍如何在播放开始之前主动获取非永久性许可证。

在早期版本的 PlayReady DRM 中,只能在播放期间被动获取非永久性许可证。 在此版本中,可以在播放开始之前主动获取非永久性许可证。

  1. 主动创建可存储非永久性许可证的播放会话。 例如:

    var cpsystems = new Windows.Foundation.Collections.PropertySet();       
    cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput"; // PlayReady
    
    var pmpSystemInfo = new Windows.Foundation.Collections.PropertySet();
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemId"] = "{F4637010-03C3-42CD-B932-B48ADF3A6A54}";
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;
    var pmpServer = new Windows.Media.Protection.MediaProtectionPMPServer( pmpSystemInfo );
    
  2. 将该播放会话绑定到许可证获取类。 例如:

    var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet();
    licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer;
    var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
    
  3. 创建许可证服务请求。 例如:

    var laSR = licenseSession.CreateLAServiceRequest();
    
  4. 使用从步骤 3 创建的服务请求执行许可证获取。 许可证将存储在播放会话中。

  5. 将播放会话绑定到媒体源进行播放。 例如:

    licenseSession.configureMediaProtectionManager( mediaProtectionManager );
    videoPlayer.msSetMediaProtectionManager( mediaProtectionManager );
    

查询保护功能

从 Windows 10 版本 1703 开始,可以查询 HW DRM 功能,例如解码编解码器、分辨率和输出保护(HDCP)。 使用 IsTypeSupported 方法执行查询,该方法采用一个字符串,表示查询支持的功能,以及一个指定查询适用的键系统的字符串。 有关支持的字符串值的列表,请参阅 IsTypeSupportedAPI 参考页。 下面的代码示例说明了此方法的用法。

using namespace Windows::Media::Protection;

ProtectionCapabilities^ sr = ref new ProtectionCapabilities();

ProtectionCapabilityResult result = sr->IsTypeSupported(
L"video/mp4; codecs=\"avc1.640028\"; features=\"decode-bpp=10,decode-fps=29.97,decode-res-x=1920,decode-res-y=1080\"",
L"com.microsoft.playready");

switch (result)
{
    case ProtectionCapabilityResult::Probably:
    // Queue up UHD HW DRM video
    break;

    case ProtectionCapabilityResult::Maybe:
    // Check again after UI or poll for more info.
    break;

    case ProtectionCapabilityResult::NotSupported:
    // Do not queue up UHD HW DRM video.
    break;
}

添加安全停止

本部分介绍如何向 UWP 应用添加安全停止。

安全停止为 PlayReady 设备提供了一种自信地向媒体流式处理服务断言的方法,即媒体播放已针对任何给定内容停止。 此功能可确保媒体流式处理服务针对给定帐户在不同设备上提供准确的使用限制和报告。

发送安全停止质询有两个主要方案:

  • 当媒体演示文稿因内容结束而停止或用户停止中间某个位置的媒体演示文稿时。
  • 当上一个会话意外结束(例如,由于系统或应用崩溃)。 应用需要在启动时或关闭时查询任何未完成的安全停止会话,并将质询与任何其他媒体播放分开发送。

有关安全停止的示例实现,请参阅 PlayReady 示例中的 securestop.cs 文件,该示例位于代码示例浏览器

在 Xbox One 上使用 PlayReady DRM

若要在 Xbox One 上的 UWP 应用中使用 PlayReady DRM,需要先注册你的中心帐户,你使用该帐户发布应用以授权使用 PlayReady。 可以通过两种方法执行此操作:

  • 在Microsoft请求权限时联系你的联系人。
  • 通过将你的合作伙伴中心帐户和公司名称发送到 pronxbox@microsoft.com,申请获得授权。

收到授权后,需要向应用清单添加一个附加 <DeviceCapability> 内容。 必须手动添加此项,因为应用清单设计器中当前没有可用的设置。 按照以下步骤对其进行配置:

  1. 在 Visual Studio 中打开该项目后,打开“解决方案资源管理器”,然后右键单击“Package.appxmanifest”。

  2. 选择“打开方式...”、选择“XML(文本)编辑器”,然后单击“确定”。

  3. <Capabilities> 标记之间,添加以下内容 <DeviceCapability>

    <DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
    
  4. 保存文件。

最后,在 Xbox One 上使用 PlayReady 时,有一个最后一个注意事项:在开发工具包上,存在 SL150 限制(也就是说,它们无法播放 SL2000 或 SL3000 内容)。 零售设备可以使用更高的安全级别播放内容,但若要在开发工具包上测试应用,需要使用 SL150 内容。 可通过以下方式之一测试此内容:

  • 使用需要 SL150 许可证的特选测试内容。
  • 实现逻辑,以便只有某些经过身份验证的测试帐户能够获取特定内容的 SL150 许可证。

使用对你的公司和产品最有意义的方法。

另请参阅