我目前正在使用 Dash/Widevine DRM 切换到 ExoPlayer。通过测试,我遇到了很大比例的设备没有启用 HDCP 保护。由于合同协议,这是一个问题。我必须在允许播放之前检测到并记录它。
我从 App DRM Info中得到灵感,这甚至是一种可能性
我的第一个想法是使用DrmManagerClient
我取消了它,因为我没有得到结果并尝试使用MediaDrm
val mediaDrm = MediaDrm(WIDEVINE_UUID)
val vendor = mediaDrm.getPropertyString(MediaDrm.PROPERTY_VENDOR)
val version = mediaDrm.getPropertyString(MediaDrm.PROPERTY_VERSION)
val description = mediaDrm.getPropertyString(MediaDrm.PROPERTY_DESCRIPTION)
val algorithms = mediaDrm.getPropertyString(MediaDrm.PROPERTY_ALGORITHMS)
var hdcp: String? = null
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
hdcp = mediaDrm.connectedHdcpLevel.toString()
}
Log.i("WideVine", "$vendor $version $description $algorithms $hdcp")
哪个有效!惊人的问题解决了!
...除了你可以看到它只适用于 Pie 及以上...这是不行的。DrmInfo 将适用于我尝试过的每个 Android 版本。我只是不知道如何使用DrmManagerClient
,而且文档几乎不存在。
任何信息都会被重视,谢谢。