2017-05-17 79 views
3

我正在开发基于DRM的android应用程序。 应用程序旨在加密文件(音频,视频)下载和获取控制权限(音频,视频)的文件(音频,视频),以防止文件(音频,视频)复制,粘贴和过期文件,以便无法再查看。为此我使用android.drm如何使用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

+0

你为什么不只是压缩文件有密码吗? DRM框架并不是为此目的而设计的。 您的代码在使用DRM框架时不会涉及到密钥。 –

回答

4

在大多数DRM方案中,Android装置将是从一个DRM点客户端,而不是服务器。

换句话说,Android设备通常是需要向DRM系统请求查看内容的密钥的回放设备。

从理论上说,Android设备无法充当包装员或内容加密的理由是没有理由的,但这不是标准,所以它不是如何设置Android中的DRM框架或示例。

如果您确实想了解如何在设备上播放受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系统和设备来保护媒体路径,所以应用程序或操作系统都无法看到密钥或未加密的内容。

流媒体服务器和DRM服务器通常是非常复杂的系统,它不太可能想要自己构建。

对于流媒体服务器有开放源码的例子,你可以看看和使用 - 例如为:https://gstreamer.freedesktop.org

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

一些编码服务让您实验clearkey设置 - 在这里看到一个例子:https://bitmovin.com/tutorials/mpeg-cenc-clearkey-drm-encryption/

+0

你是否使用DRM工作过文件保护(加密)视频源 如何让DRM系统查看内容的密钥(实现) – KomalG

+0

好的,这是一个不同的问题 - 现在看客户端。见上面的更新。 – Mick

+0

您好米克感谢您的回应,我的观点是关于使用android.drm保护媒体内容,如何实现该目标 – KomalG