离线drm。使用 exoplayer 获取离线安全内容
offline drm. using exoplayer for offline secure content
我能否在 SD 卡上下载具有 DRM 保护的视频,并仅在我使用 Exoplayer 的应用程序或以某种方式安全保存的视频中播放。我不希望用户可以将我的视频复制到另一台设备,并且我希望将其保存在 SD 卡上,因为用户可以下载的视频大小和数量
现在我决定使用 Facebook conceal library。快速简便的加密方法。我下载我的内容并将其传递给隐藏库,当我想播放视频时使用字节流来读取视频部分。
但如果您找到更好更简单的方法,请告诉我。
你可以找到一个例子here
您可以使用Exoplayer 进行离线观看。但是您必须从 DrmSessionManager
扩展您自己的 class。这里的Key是在mediaDrm.getKeyRequest
.
中使用MediaDrm.KEY_TYPE_OFFLINE
作为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[])
在最新版本的 ExoPlayer 2.2.0 中,它提供了内置于 ExoPlayer 中的此功能。
ExoPlayer 有一个助手 class 可以下载和刷新离线许可证密钥
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 离线播放的示例应用程序 content.You 可以从 here
访问它
我能否在 SD 卡上下载具有 DRM 保护的视频,并仅在我使用 Exoplayer 的应用程序或以某种方式安全保存的视频中播放。我不希望用户可以将我的视频复制到另一台设备,并且我希望将其保存在 SD 卡上,因为用户可以下载的视频大小和数量
现在我决定使用 Facebook conceal library。快速简便的加密方法。我下载我的内容并将其传递给隐藏库,当我想播放视频时使用字节流来读取视频部分。
但如果您找到更好更简单的方法,请告诉我。
你可以找到一个例子here
您可以使用Exoplayer 进行离线观看。但是您必须从 DrmSessionManager
扩展您自己的 class。这里的Key是在mediaDrm.getKeyRequest
.
MediaDrm.KEY_TYPE_OFFLINE
作为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[])
在最新版本的 ExoPlayer 2.2.0 中,它提供了内置于 ExoPlayer 中的此功能。 ExoPlayer 有一个助手 class 可以下载和刷新离线许可证密钥
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 离线播放的示例应用程序 content.You 可以从 here
访问它