Не удается получить доступ к DrmEngines для Android
Я использую DrmManagerClient для получения доступных DRMengines следующим образом:
DrmManagerClient mDrmManager = new DrmManagerClient(context);
String[] engines = mDrmManager.getAvailableDrmEngines();
С некоторыми устройствами, такими как huawei или honor, getAvailableDrmEngines
возвращается 0
но устройство может поддерживать Widevine, потому что я протестировал его с помощью приложения DRM Info. Что я сделал не так или что я пропустил?
0 ответов
Возможно, ваше устройство не поддерживает классический DRM API. Может быть, попробуйте с новым API MediaDrm.
Я не пробовал это сам, но я ожидаю, что Widevine L1 должен вернуть 6 (по умолчанию) или SECURITY_LEVEL_HW_SECURE_ALL, а L3 должен сообщить SECURITY_LEVEL_SW_SECURE_DECODE или SECURITY_LEVEL_SW_SECURE_CRYPTO.
Возвращенные значения могут измениться, но вы поняли идею.
Widevine L3 против Widevine L1:
- L1: все операции по обработке контента и криптографии обрабатываются в среде Trusted Execution Environment (TEE)
- L2: внутри TEE обрабатываются только криптографические операции
- L3: операции по обработке контента и криптографии (преднамеренно) обрабатываются вне TEE, или устройство не поддерживает TEE.