DRM许可证申请攻略

DRM许可证申请攻略

Peter Lee

 

【前言】

Windows Media提供了DRM的解决方案,但DRM解决方案对开发者不是完全开放的,而是通过认证的方式对有资质的企业开放。Windows Media Format SDK中提供了DRM播放的demo,但其中用到的drm解析库wmstub.lib只是一个示例,并不具备实际播放DRM文件的能力。开发者如果要得到通过许可的wmstub.lib,必须向微软申请,笔者最近刚体验了整个申请的流程,下面将这个过程分享给大家,希望能给大家一些指引。

 

【攻略】

1. 登陆微软许可证申请网站

https://wmlicense.smdisp.net/licenserequest-04/licenserequest.aspx

注:这个网址有时候打不开,换个时间段即可。

 

填写时的注意事项:

Email栏一定要填公司域名的email地址。

License选择:

 

 

2. 申请之后会立即收到一份自动发送的邮件,表明微软开始处理申请了。

部分内容如下:

 

 

 

3. 2天会收到第二份邮件,包含多个附件。这份邮件很关键。

 

 

要做的有两件事:

l         将第二个pdf文档打印出来,填写申请内容,然后快递到微软美国Redmond总部。

l         wmla.zip中的wmla.ocx打上贵公司的数字签名,然后邮件发送给微软。这一项是DRM许可证的最大门槛,一般小公司都没有打数字签名的能力。

 

注:打过数字签名的文件,文件属性中会多一个“数字签名”tap页,示例如下:

 

 

 

4. 接着一周之内会收到第三份邮件,邮件内容是说数字签名的文件已经收到了。

 

 

5. 再过一到两周,会收到第四/五份邮件,邮件内容告诉你快递的文档收到了,而且通过微软的审核了。另外,就是告知你去哪里下载有许可的wmstubxxx.lib文件。其中一份邮件是下载地址,另一份是帐号和密码。分成两份邮件发送是考虑安全性。

下载地址后:https://specserver.partners.extranet.microsoft.com/

登陆后能看到下载链接,如下:

 

 

 

 

数字版权管理(DRM)技术的实现通常依赖于一系列标准化接口和开发工具,这些接口允许开发者在应用程序中集成内容保护功能。不同的 DRM 解决方案提供了各自的 API 和 SDK,以支持内容加密、许可证获取、密钥管理等核心功能。 在开发过程中,DRM 接口通常包括以下几个关键部分: - **设备支持查询**:在调用任何 DRM 功能之前,应用程序需要确认设备是否支持特定的 DRM 解决方案。这通常通过查询系统中的 DRM 插件来完成[^4]。 - **证书申请与处理**:为了确保安全通信和内容解密,设备可能需要从 DRM 服务器获取并维护有效的证书。这一过程涉及与 DRM 服务端的交互,并且通常是自动进行的[^4]。 - **会话管理**:当用户尝试播放受保护的内容时,应用程序必须创建一个 DRM 会话。这个会话负责与 DRM 服务器交换必要的信息,如许可证请求,并处理返回的解密密钥。 - **离线媒体密钥管理**:对于支持离线播放的 DRM 方案,存在专门的机制来存储和管理用于解密内容的密钥。这些密钥可以在没有网络连接的情况下被安全地使用。 - **统计信息获取**:一些高级 DRM 系统还提供度量统计功能,允许开发者监控 DRM 系统的表现,比如成功解密次数、失败尝试次数等,这对于故障排除和性能优化非常有用。 以 NDK(Native Development Kit)为例,如果要在原生代码中使用 DRM 功能,则需要导入相关的头文件,例如 `native_drm_common.h`、`native_drm_err.h`、`native_mediakeysession.h` 和 `native_mediakeysystem.h`。这些头文件定义了用于访问 DRM 功能的本地接口[^5]。 对于具体的开发文档,每个 DRM 提供商都会提供详细的指南和技术规范,包括如何初始化 DRM 系统、如何创建和管理会话、以及如何处理错误情况等。开发人员应该参考相应 DRM 解决方案提供的官方文档来进行集成和开发工作。 ### DRM 接口示例 以下是一个简化的伪代码示例,展示了一个典型的 DRM 会话初始化流程: ```cpp // 创建 MediaKeySystem 实例 MediaKeySystem* mediaKeySystem = MediaKeySystem::create("com.example.drm"); // 检查设备是否支持指定的 DRM 插件 if (mediaKeySystem->isPluginSupported()) { // 初始化 DRM 系统 mediaKeySystem->initialize(); // 申请设备证书 Certificate* certificate = mediaKeySystem->getCertificate(); // 创建媒体会话 MediaKeySession* session = mediaKeySystem->createSession(certificate); // 使用会话获取许可证并解密内容 License* license = session->acquireLicense("content_id"); ContentDecryptor* decryptor = session->createDecryptor(license); // ... 使用 decryptor 解密内容 ... // 清理资源 delete decryptor; delete license; delete session; delete certificate; delete mediaKeySystem; } ``` 请注意,实际的开发过程将更加复杂,并且需要遵循特定 DRM 解决方案的 API 规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值