Ответ 1
Для тех, кто все еще ищет это, есть некоторые игроки с открытым исходным кодом, которые интегрированы в EME, что позволяет вам подробно рассмотреть подход к внедрению.
Например, dash.js справочный проигрыватель Dash Industry Forum, поддерживает EME и имеет архитектуру для поддержки нескольких DRM.
Взгляните на файл ProtectionModel.js, чтобы получить представление о архитектуре высокого уровня, а также в файлах с использованием интерфейса KeySystem в папке DRM, например KeySystemWidevine.js.
Код в ProtectionController.js связывает все это вместе, чтобы найти еще одно хорошее место.
При просмотре кода стоит отметить, что термины DRM и KeySystem иногда используются взаимозаменяемо, что довольно часто встречается в мире DRM.