我目前正在切换到使用具有Dash/Widevine DRM功能的ExoPlayer。经过测试,我发现高比例的设备未启用HDCP保护。由于合同协议,这是个问题。在允许播放之前,我必须检测并记录这一点。
我从应用程序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版本上工作。我只是不知道如何使用和文档实际上不存在。
任何信息都将受到重视,谢谢。