我目前正在使用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)
}
答案 0 :(得分:0)
如果您要打印出许可证本身(即解密密钥),那么您将无能为力,因为DRM系统还会对密钥进行加密,而仅将DRM客户端本身配置为对其进行解密。解密不会以任何公开或可观察的方式进行。
DRM系统(如Widevine,PlayReady等)的主要目的之一是在许可证服务器与客户端/播放器之间安全地传输密钥。