如何使用android.drm框架

时间:2017-05-17 10:35:36

标签: android drm android-drm

我正在开发一个基于DRM的Android应用程序。 应用程序旨在加载(音频,视频)文件后下载并获取文件(音频,视频)的控制访问权限,防止文件(音频,视频)复制和粘贴文件,使文档无法再查看。为此我使用android.drm

我搜索了很多但没有得到任何结果

请分享一些解释如何使用DRM框架API的示例代码。

Refered:

https://www.widevine.com/wv_drm.html

https://source.android.com/devices/drm

https://developer.android.com/reference/android/drm/package-summary.html

1 个答案:

答案 0 :(得分:7)

在大多数DRM场景中,从DRM的角度来看,Android设备将是客户端,而不是服务器。

换句话说,Android设备通常是回放设备,需要向DRM系统询问密钥才能查看内容。

理论上没有理由说为什么Android设备不能作为打包器或加密内容,但它不是常态,因此它不是如何设置Android中的DRM框架或示例。 / p>

如果您确实想要了解如何在设备上播放受DRM保护的内容,那么Exoplayer演示有很好的工作示例。

以DefaultDRMSessionManager作为起点:https://github.com/google/ExoPlayer/blob/d979469659861f7fe1d39d153b90bdff1ab479cc/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java

<强>更新

受保护内容的示例工作流程:

  1. 内容被摄取在服务器上(即以某种方式加载或放置在流媒体服务器上)
  2. 内容已在DRM许可证服务器和请求的加密密钥中注册
  3. 当用户请求视频文件时,文件将被打包到设备的相应流媒体协议中(通常是Android的MPEG DASH),视频文件使用从DRM服务器接收的密钥进行加密。
  4. 请求流的设备(即您的情况下的Android设备)接收流并识别它已加密。它从许可证服务器请求许可证密钥。在使用Widevine DRM的Android设备上,它必须具有播放器配置中包含的许可证服务器的URL。
  5. DRM服务器将密钥安全地发送到播放内容的Android设备。应用程序甚至是操作系统都不会看到密钥和未加密的内容,因为它是使用DRM系统和设备保护媒体路径播放的。
  6. 流媒体服务器和DRM服务器通常都是非常复杂的系统,您不太可能想要自己构建。

    对于流媒体服务器,您可以查看和使用开源示例 - 例如:https://gstreamer.freedesktop.org

    如果您想尝试DRM,那么您可以使用具有MPEG DASH的clearkey DRM,Exoplayer将支持该DRM。它不像常规DRM方案那样安全,但它是免费的,因此值得检查它是否符合您的需求。

    某些编码服务允许您尝试使用clearkey设置 - 请参阅此处的示例:https://bitmovin.com/tutorials/mpeg-cenc-clearkey-drm-encryption/