2

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

4

4 回答 4

3

随着 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 存储库访问最新代码

如需更多灵感,您可以查看这个已关闭的问题

我为 DRM 内容的离线播放创建了一个示例应用程序。您可以从这里访问它

于 2017-02-20T12:28:55.660 回答
2

您可以使用 Exoplayer 进行离线观看。但是您必须从DrmSessionManager. 这里的 Key 是MediaDrm.KEY_TYPE_OFFLINE用作mediaDrm.getKeyRequest.

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(字节[],字节[])

于 2016-05-18T17:38:31.683 回答
1

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

但如果你找到更好更简单的方法,请告诉我。

你可以在这里找到一个例子

于 2015-12-03T21:39:56.993 回答
0

ExoPlayer 存储库上的这个问题可能会帮助https://github.com/google/ExoPlayer/issues/949

于 2022-02-11T11:23:46.590 回答