离线drm。使用exoplayer进行离线安全内容

时间:2015-10-18 11:50:38

标签: android video-streaming drm exoplayer

我可以在SD卡上下载带有DRM保护的视频,只能使用我的使用Exoplayer的应用程序播放,或者以某种方式安全地保存视频。我不希望用户将我的视频复制到另一台设备,因为用户可能下载的视频大小和数量,我希望将其保存在SD卡上

3 个答案:

答案 0 :(得分:2)

您可以使用Exoplayer进行离线查看。但是你必须从DrmSessionManager扩展自己的类。这里的关键是在MediaDrm.KEY_TYPE_OFFLINE中使用mediaDrm.getKeyRequest作为keyType。

mediaDrm.provideKeyResponse中,您需要获取KeySetId并稍后在同一视频的另一个请求时使用mediaDrm.restoreKeys

恢复密钥后,也不要忘记用STATE_OPENED_WITH_KEYS设置播放器的状态。

您可以在此处找到有关此内容的更多信息: http://developer.android.com/reference/android/media/MediaDrm.html#KEY_TYPE_OFFLINE https://developer.android.com/reference/android/media/MediaDrm.html#restoreKeys(byte[],byte[])

答案 1 :(得分:2)

使用ExoPlayer 2.2.0的最新版本,它在ExoPlayer中提供了此功能。 ExoPlayer有一个帮助程序类来下载和刷新脱机许可证密钥

OfflineLicenseHelper.java
/**
 * Helper class to download, renew and release offline licenses. It utilizes {@link
 * DefaultDrmSessionManager}.
 */
public final class OfflineLicenseHelper<T extends ExoMediaCrypto> {

您可以访问ExoPlayer repo

中的最新代码

要获得更多灵感,您可以查看已关闭的issue

我创建了一个脱机播放DRM内容的示例应用程序。您可以从here

访问它

答案 2 :(得分:1)

现在我决定使用Facebook conceal library。快速简便的加密方式。我下载我的内容并将其传递给隐藏库,当我想播放视频时使用字节流并读取视频截面。

但是如果你找到更好更容易的方式让我知道。

你可以找到一个例子here

相关问题