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