我正在开发一个基于 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
在大多数 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
Update
受保护内容的示例工作流程:
- 内容在服务器上被摄取(即以某种方式加载或放置在流媒体服务器上)
- 内容已注册到 DRM 许可证服务器并请求加密密钥
- 当用户请求视频文件时,该文件将被打包为适合设备的流协议(通常为 Android 的 MPEG DASH),并使用从 DRM 服务器接收到的密钥对视频文件进行加密。
- 请求流的设备(即您的情况下的 Android 设备)接收流并识别它已加密。它从许可证服务器请求许可证密钥。在使用 Widevine DRM 的 Android 设备上,播放器配置中必须包含许可证服务器的 URL。
- 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/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)