5

I am developing an android app based on DRM. Application is intended to encrypt the (audio,video) files after downloading and getting control access on the files(audio,video)preventing the file(audio,Video) copy and paste and expire documents so they can no longer be viewed. for this i am using android.drm

I have searched a lot but didn't get any result

So please share some sample code that explain how to use DRM framework 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

4

1 回答 1

9

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

换言之,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,那么您可以使用 Clearkey DRM 和 Exoplayer 支持的 MPEG DASH。它不如常规 DRM 方案安全,但它是免费的,因此值得检查它是否满足您的需求。

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

于 2017-05-18T07:38:35.717 回答