MediaDrmCallback函数的打印值

时间:2019-04-23 13:39:03

标签: android drm exoplayer2.x

我目前正在使用ExoPlayer进行DRM,并且正在尝试弄清MediaDrmCallback的函数返回什么,即以字节数组形式返回executeProvisionRequest和executeKeyRequest。我阅读了MediaDrm的“开发人员”页面,但是它说服务器返回了我想打印的许可证,但唯一的问题是它在ByteArray中

我尝试使用UTF-8编码和ASCII编码,但是它们都打印一些未知字符。

override fun executeProvisionRequest(uuid: UUID?, request: ExoMediaDrm.ProvisionRequest?): ByteArray {
    val url = request?.defaultUrl + "&signedRequest=" + String(request!!.data)
    return executePost(url, null, null)
}

override fun executeKeyRequest(uuid: UUID?, request: ExoMediaDrm.KeyRequest?): ByteArray {
    val requestProperties = HashMap<String, String>()
    requestProperties["X-AxDRM-Message"] = mAxDrmMessage
    return executePost(mLicenseServer, request!!.data, requestProperties)
}

1 个答案:

答案 0 :(得分:0)

如果您要打印出许可证本身(即解密密钥),那么您将无能为力,因为DRM系统还会对密钥进行加密,而仅将DRM客户端本身配置为对其进行解密。解密不会以任何公开或可观察的方式进行。

DRM系统(如Widevine,PlayReady等)的主要目的之一是在许可证服务器与客户端/播放器之间安全地传输密钥。