Поделиться через


PlayReady DRM

В этом разделе описывается, как добавить защищенное содержимое мультимедиа PlayReady в приложение универсальная платформа Windows (UWP).

PlayReady DRM позволяет разработчикам создавать приложения UWP, способные предоставлять пользователю содержимое PlayReady при применении правил доступа, определенных поставщиком контента. В этом разделе описаны изменения, внесенные в DRM Microsoft PlayReady для Windows 10, и как изменить приложение PlayReady UWP для поддержки изменений, внесенных в предыдущую версию Windows 8.1 до версии Windows 10.

Раздел Описание
Аппаратное аварийное восстановление В этом разделе представлен обзор добавления управления цифровыми правами на основе PlayReady в приложение UWP.
Адаптивная потоковая передача с помощью PlayReady В этой статье описывается, как добавить адаптивную потоковую передачу мультимедиа с помощью защиты содержимого Microsoft PlayReady в приложение универсальная платформа Windows (UWP). Эта функция в настоящее время поддерживает воспроизведение содержимого Http Live Streaming (HLS) и динамической потоковой передачи по протоколу HTTP (DASH).

Новые возможности в PlayReady DRM

В следующем списке описываются новые функции и изменения, внесенные в DrM PlayReady для Windows 10.

  • Добавлено аппаратное управление цифровыми правами (HWDRM).

    Поддержка защиты содержимого на основе оборудования обеспечивает безопасное воспроизведение содержимого с высоким определением (HD) и ультра-высоким определением (UHD) на нескольких платформах устройств. Материалы ключей (включая закрытые ключи, ключи содержимого и любые другие ключевые материалы, используемые для получения или разблокировки указанных ключей), а расшифрованные сжатые и несжатые примеры видео защищены с помощью аппаратной безопасности. При использовании аппаратного drM ни неизвестное средство включения (воспроизведение в неизвестное значение или воспроизведение неизвестно с понижением) имеет значение, так как конвейер HWDRM всегда знает, какие выходные данные используются. Дополнительные сведения см. в разделе "Оборудование DRM".

  • PlayReady больше не является компонентом платформы appX, но вместо этого является встроенным компонентом операционной системы. Пространство имен было изменено с Microsoft.Media.PlayReadyClient на Windows.Media.Protection.PlayReady.

  • Следующие заголовки, определяющие коды ошибок PlayReady, теперь являются частью пакета SDK для Программного обеспечения Windows: Windows.Media.Protection.PlayReadyErrors.h и Windows.Media.Protection.PlayReadyResults.h.

  • Обеспечивает упреждающее приобретение непрекращающихся лицензий.

    Предыдущие версии PlayReady DRM не поддерживали упреждающее приобретение непристойных лицензий. Эта возможность добавлена в эту версию. Это может уменьшить время до первого кадра. Дополнительные сведения см. в разделе "Упреждающая получение лицензии перед воспроизведением".

  • Предоставляет получение нескольких лицензий в одном сообщении.

    Позволяет клиентскому приложению получать несколько не постоянных лицензий в одном сообщении о приобретении лицензий. Это может уменьшить время на первый кадр, получив лицензии для нескольких частей содержимого, пока пользователь по-прежнему просматривает библиотеку содержимого; Это предотвращает задержку приобретения лицензий, когда пользователь выбирает содержимое для воспроизведения. Кроме того, он позволяет шифровать аудио- и видеопотоки для разделения ключей путем включения заголовка содержимого, включающего несколько идентификаторов ключей (KID); Это позволяет получить все лицензии для всех потоков в файле содержимого вместо использования пользовательской логики и нескольких запросов на приобретение лицензий для достижения одного результата.

  • Добавлена поддержка срока действия в режиме реального времени или ограниченная лицензия на срок действия (LDL).

    Предоставляет возможность задать срок действия лицензий в режиме реального времени и плавно перейти с истечения срока действия лицензии на другую (допустимую) лицензию в середине воспроизведения. В сочетании с приобретением нескольких лицензий в одном сообщении это позволяет приложению получать несколько ldls асинхронно, пока пользователь по-прежнему просматривает библиотеку содержимого и получает лицензию только на более длительный срок, когда пользователь выбрал содержимое для воспроизведения. После этого воспроизведение начнется быстрее (так как лицензия уже доступна) и, так как приложение получит более длинную лицензию на время истечения срока действия LDL, плавно продолжайте воспроизведение до конца содержимого без прерывания.

  • Добавлены не постоянные цепочки лицензий.

  • Добавлена поддержка ограничений на основе времени (включая истечение срока действия, истечение срока действия после первого воспроизведения и истечения срока действия в режиме реального времени) на непрекращающиеся лицензии.

  • Добавлена поддержка политики HDCP Типа 1 (версия 2.2 в Windows 10).

    Дополнительные сведения см. в разделе "Вещи".

  • Miracast теперь неявно является выходным.

  • Добавлена безопасная остановка.

    Безопасная остановка предоставляет средства для устройства PlayReady, чтобы уверенно утверждать в службе потоковой передачи мультимедиа, что воспроизведение мультимедиа остановлено для любого заданного содержимого. Эта возможность гарантирует, что службы потоковой передачи мультимедиа обеспечивают точное применение и отчеты об ограничениях использования на разных устройствах для данной учетной записи.

  • Добавлено разделение лицензий на аудио и видео.

    Отдельные треки предотвращают декодирование видео в виде звука; включение более надежной защиты содержимого. Новые стандарты требуют отдельных ключей для звуковых и визуальных треков.

  • Добавлен MaxResDecode.

    Эта функция была добавлена, чтобы ограничить воспроизведение содержимого максимальным разрешением, даже если имеется более способный ключ (но не лицензия). Он поддерживает случаи, когда несколько размеров потока кодируются одним ключом.

В PlayReady DRM добавлены следующие новые интерфейсы, классы и перечисления:

Был создан новый пример, демонстрирующий использование новых функций DRM PlayReady. Пример можно скачать из браузера примеров кода.

Следует учесть

  • PlayReady DRM теперь поддерживает HDCP Type 1 (поддерживается в HDCP версии 2.1 или более поздней версии). PlayReady содержит политику ограничения типов HDCP в лицензии для принудительного применения устройства. В Windows 10 эта политика будет применяться к включению HDCP 2.2 или более поздней версии. Эту функцию можно включить в лицензии пакета SDK Для PlayReady Server версии 3.0 (сервер управляет этой политикой в лицензии с помощью GUID ограничения типов HDCP). Дополнительные сведения см. в правилах соответствия и надежности PlayReady.
  • Видео Windows Media (также известное как VC-1) не поддерживается в аппаратном drM (см . раздел "Переопределение аппаратного DRM").
  • PlayReady DRM теперь поддерживает стандарт сжатия видео с высокой эффективностью (HEVC /H.265). Для поддержки HEVC приложение должно использовать содержимое Common Encryption Scheme (CENC) версии 2, которое включает выход из заголовков среза содержимого в ясном режиме. Дополнительные сведения см. в статье ISO/IEC 23001-7 Информационные технологии - технологии MPEG- Часть 7. Общие сведения о шифровании в файлах формата файлов базового носителя ISO (спецификация ISO/IEC 23001-7:2015 или более поздней версии).) Корпорация Майкрософт также рекомендует использовать CENC версии 2 для всех содержимого HWDRM. Кроме того, некоторые аппаратные drM поддерживают HEVC и некоторые не будут (см . раздел "Переопределение аппаратного DRM").
  • Чтобы воспользоваться некоторыми новыми функциями PlayReady 3.0 (включая, но не ограничено, SL3000 для клиентов на основе оборудования, приобретение нескольких непрекращающихся лицензий в одном сообщении о приобретении лицензий и ограничения на срок на основе времени), сервер PlayReady должен быть пакетом средств разработки Программного обеспечения Microsoft PlayReady версии 3.0.2769 или более поздней.
  • В зависимости от политики защиты выходных данных, указанной в лицензии на содержимое, воспроизведение мультимедиа может завершиться ошибкой для конечных пользователей, если их подключенные выходные данные не поддерживают эти требования. В следующей таблице перечислены распространенные ошибки, возникающие в результате. Дополнительные сведения см. в правилах соответствия и надежности PlayReady.
Ошибка значение Описание
ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP 0xC0262513 Политика защиты выходных данных лицензии требует, чтобы монитор использовал HDCP, но HDCP не мог быть задействован.
MF_E_POLICY_UNSUPPORTED 0xC00D7159 Политика защиты выходных данных лицензии требует монитора для привлечения HDCP Типа 1, но hdCP Type 1 не удалось включить.
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET 0x8004CD22 Этот код ошибки возникает только при запуске в аппаратном drM. Политика защиты выходных данных лицензии требует от монитора привлечь HDCP или уменьшить эффективное разрешение содержимого, но HDCP не удалось включить, а эффективное разрешение содержимого не может быть сокращено, так как аппаратное drM не поддерживает уменьшение разрешения содержимого. В программе DRM содержимое воспроизводится. Рекомендации по использованию аппаратного DRM.
ERROR_GRAPHICS_OPM_NOT_SUPPORTED 0xC0262500 Графический драйвер не поддерживает защиту выходных данных. Например, монитор подключен через VGA или соответствующий графический драйвер для цифрового вывода не установлен. В последнем случае типичный драйвер, установленный является адаптером отображения Microsoft Basic, и установка соответствующего графического драйвера устранит проблему.

Защита выходных данных

В следующем разделе описывается поведение при использовании PlayReady DRM для Windows 10 с политиками защиты выходных данных в лицензии PlayReady.

PlayReady DRM поддерживает уровни защиты выходных данных, содержащиеся в спецификации Microsoft PlayReady Extensible Media Rights. Этот документ можно найти в пакете документации, который поставляется с лицензированными продуктами PlayReady.

Примечание.

Допустимые значения для уровней защиты выходных данных, которые могут быть установлены сервером лицензирования, регулируются правилами соответствия PlayReady.

PlayReady DRM позволяет воспроизводить содержимое с политиками защиты выходных данных только в выходных соединителях, как указано в правилах соответствия PlayReady. Дополнительные сведения о терминах соединителя вывода, указанных в правилах соответствия PlayReady, см . в разделе "Определенные условия для правил соответствия PlayReady и надежности".

В этом разделе рассматриваются сценарии защиты выходных данных с помощью playReady DRM для Windows 10 и PlayReady Hardware DRM для Windows 10, которые также доступны для некоторых клиентов Windows. При использовании PlayReady HWDRM все средства защиты выходных данных применяются в реализации TEE Windows (см . аппаратный drM). В результате некоторые поведения отличаются от использования PlayReady SWDRM (программное drM):

  • Поддержка уровня защиты выходных данных (OPL) для несжатого цифрового видео 270: PlayReady HWDRM для Windows 10 не поддерживает пониженное разрешение и будет применять hdCP (защита цифрового содержимого с высокой пропускной способностью). Рекомендуется, чтобы содержимое высокого определения для HWDRM было больше 270 (хотя оно не требуется). Кроме того, необходимо задать ограничение типа HDCP в лицензии (HDCP версии 2.2 или более поздней).
  • В отличие от SWDRM, при использовании HWDRM защита выходных данных применяется ко всем мониторам на основе наименее способных мониторов. Например, если у пользователя есть два монитора, где один поддерживает HDCP, а другой — нет, воспроизведение завершится ошибкой, если лицензия требует HDCP, даже если содержимое отрисовывается только на мониторе, поддерживающем HDCP. В SWDRM содержимое будет воспроизводиться до тех пор, пока оно отображается только на мониторе, поддерживающем HDCP.
  • HWDRM не гарантируется, что клиент будет использовать и обеспечить безопасность, если следующие условия не выполняются ключами содержимого и лицензиями:
    • Лицензия, используемая для ключа видеосодержимого, должна иметь минимальный уровень безопасности 3000.
    • Звук должен быть зашифрован в другом ключе содержимого, чем видео, и лицензия, используемая для звука, должна иметь минимальный уровень безопасности 2000. Кроме того, звук можно оставить в ясном месте.
  • Для всех сценариев SWDRM требуется, чтобы минимальный уровень безопасности лицензии PlayReady, используемой для ключа звукового и /или видеоконтентного содержимого, был ниже или равен 2000.

Уровни защиты выходных данных

В следующей таблице описаны сопоставления между различными opLs в лицензии PlayReady и применением функции PlayReady DRM для Windows 10.

Видео

OPL Сжатое цифровое видео Распаковка цифрового видео Аналоговое телевидение
Любое HDMI, DVI, DisplayPort, MHL Компонент, составной
100 N/A\* Передает содержимое Передает содержимое
150 N/A\* Передает содержимое, когда используется CGMS-A CopyNever или если не удается включить CGMS-A
200 Передает содержимое при задействовании CGMS-A CopyNever
250 Пытается привлечь HDCP, но передает содержимое независимо от результата N/A\*
270 SWDRM: пытается привлечь HDCP. Если HDCP не удается привлечь, компьютер будет ограничивать эффективное разрешение до 520 000 пикселей на кадр и передать содержимое. HWDRM: передает содержимое с помощью HDCP. Если HDCP не удается подключить, воспроизведение в портах HDMI/DVI блокируется
300

**Если ограничение типа HDCP не определено:** передает содержимое с помощью HDCP. Если HDCP не удается подключить, воспроизведение в портах HDMI/DVI блокируется.

**Если определено ограничение типа HDCP**: передает содержимое с hdCP 2.2 и типом потока контента, равным 1. Если HDCP не удается включить или тип потока содержимого не удается установить значение 1, воспроизведение на порты HDMI/DVI блокируется.

400 Windows 10 никогда не передает сжатый цифровой видеоконтент в выходные данные независимо от последующего значения OPL. Дополнительные сведения о сжатом цифровом видеоконтенте см. в правилах соответствия для продуктов PlayReady. N/A\*
500

* Не все значения для уровней защиты выходных данных можно задать сервером лицензирования. Дополнительные сведения см. в правилах соответствия PlayReady.

Аудио

OPL Сжатый цифровой звук Распаковка цифрового звука Аналоговый или USB-звук
HDMI, DisplayPort, MHL HDMI, DisplayPort, MHL Любое
100 Передает содержимое Передает содержимое Передает содержимое
150 Не передает содержимое
200
250 Передает содержимое при подключении HDMI, DisplayPort или MHL или при использовании SCMS и установке значения CopyNever
300 Передает содержимое при использовании HDMI, DisplayPort или MHL

Miracast

PlayReady DRM позволяет воспроизводить содержимое над выходными данными Miracast, как только HDCP 2.0 или более поздней версии. Однако в Windows 10 Miracast считается цифровым выходом. Дополнительные сведения о сценариях Miracast см. в правилах соответствия PlayReady. В следующей таблице описаны сопоставления между различными opls в лицензии PlayReady и применением функции PlayReady DRM в выходных данных Miracast.

OPL Сжатый цифровой звук Распаковка цифрового звука Сжатое цифровое видео Распаковка цифрового видео
100 Передает содержимое при включении HDCP 2.0 или более поздней версии. Если не удается подключиться, он не передает содержимое Передает содержимое при включении HDCP 2.0 или более поздней версии. Если не удается подключиться, он не передает содержимое N/A\* Передает содержимое при включении HDCP 2.0 или более поздней версии. Если не удается подключиться, он не передает содержимое
150 Не передает содержимое N/A\*
200
250 Передает содержимое при включении HDCP 2.0 или более поздней версии. Если не удается подключиться, он не передает содержимое
270 N/A\*
300 Передает содержимое при включении HDCP 2.0 или более поздней версии. Если не удается подключиться, он не передает содержимое Не передает содержимое

**Если ограничение типа HDCP не определено:** передает содержимое при включении HDCP 2.0 или более поздней версии. Если он не может заниматься, он не передает содержимое.

**Если определено ограничение типа HDCP:** передает содержимое с hdCP 2.2 и типом потока контента, равным 1. Если HDCP не удается включить или тип потока контента не может быть задан в значение 1, он не передает содержимое.

400 N/A\* Windows 10 никогда не передает сжатый цифровой видеоконтент в выходные данные независимо от последующего значения OPL. Дополнительные сведения о сжатом цифровом видеоконтенте см. в правилах соответствия для продуктов PlayReady. N/A\*
500

* Не все значения для уровней защиты выходных данных можно задать сервером лицензирования. Дополнительные сведения см. в правилах соответствия PlayReady.

Дополнительные явные ограничения выходных данных

В следующей таблице описана реализация drM PlayReady для Windows 10 явных ограничений защиты цифровых выходных видео.

Сценарий GUID Если... То...
Максимальный размер декодатора эффективного разрешения 9645E831-E01D-4FFF-8342-0A720E3E028F Подключенные выходные данные: цифровые выходные данные видео, Miracast, HDMI, DVI и т. д.

Передает содержимое при ограничении:

  • (a) ширина рамки должна быть меньше или равна максимальной ширине кадра в пикселях, а высота кадра меньше или равна максимальной высоте кадра в пикселях.
  • (b) высота кадра должна быть меньше или равна максимальной ширине кадра в пикселях и ширине кадра меньше или равно максимальной высоте кадра в пикселях.
Ограничение типа HDCP ABB2C6F1-E663-4625-A945-972D17B231E7 Подключенные выходные данные: цифровые выходные данные видео, Miracast, HDMI, DVI и т. д. Передает содержимое с HDCP 2.2, а тип потока контента — 1. Если HDCP 2.2 не удается включить или тип потока контента не может быть задан 1, он не передает содержимое. Кроме того, необходимо указать уровень защиты вывода цифрового видео, превышающий или равный 271.

В следующей таблице описывается реализация playReady DRM для Windows 10 явных ограничений защиты выходных видеофайла.

Сценарий GUID Если... То...
Монитор аналогового компьютера D783A191-E083-4BAF-B2DA-E69F910B3772 Подключенные выходные данные: VGA, аналог DVI–и т. д. SWDRM: ПК будет ограничивать эффективное разрешение до 520 000 epx на кадр и передавать содержимое HWDRM: не передает содержимое
Аналоговый компонент 811C5110-46C8-4C6E-8163-C0482A15D47E Подключенные выходные данные: компонент SWDRM: ПК будет ограничивать эффективное разрешение до 520 000 epx на кадр и передавать содержимое HWDRM: не передает содержимое
Выходные данные аналогового телевизора 2098DE8D-7DDDD-4BAB-96C6-32EBB6FABEA3 Аналоговое телевидение OPL меньше 151 Необходимо включить CGMS-A
225CD36F-F132-49EF-BA8C-C91EA28E4369 Аналоговое TV OPL меньше 101, и лицензия не содержит 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 Необходимо выполнить попытку взаимодействия CGMS-A, но содержимое может воспроизводиться независимо от результата.
Автоматическое управление получением и цветовая полоса C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA Передача содержимого с разрешением меньше или равно 520 000 пикселей аналоговым выходным данным тв Задает AGC только для режима видео компонента и PAL, если разрешение меньше 520 000 пикселей и задает сведения о AGC и цветовой полосе для NTSC, если разрешение меньше 520 000 пикселей, в соответствии с таблицей 3.5.7.3. в правилах соответствия требованиям
Выходные данные только для цифровых данных 760AE755-682A-41E0-B1B3-DCDF836A7306 Подключенные выходные данные являются аналогом Не передает содержимое

Примечание.

При использовании адаптера, например "Mini DisplayPort to VGA" для воспроизведения, Windows 10 видит выходные данные как цифровые выходные данные видео и не может применять аналоговые политики видео.

В следующей таблице описывается реализация PlayReady DRM для Windows 10, которая позволяет воспроизводиться в других обстоятельствах.

Сценарий GUID Если... То...
Неизвестные выходные данные 786627D8-C2A6-44BE-8F88-08AE255B01A7 Если выходные данные не могут быть достаточно определены, или OPM не удается установить с графическим драйвером SWDRM: передает содержимое HWDRM: не передает содержимое
Неизвестные выходные данные с констрикцией B621D91F-EDCC-4035-8D4B-DC71760D43E9 Если выходные данные не могут быть достаточно определены, или OPM не удается установить с графическим драйвером SWDRM: ПК будет ограничивать эффективное разрешение до 520 000 epx на кадр и передавать содержимое HWDRM: не передает содержимое

Необходимые компоненты

Прежде чем приступить к созданию приложения UWP с защитой PlayReady, необходимо установить в системе следующее программное обеспечение:

  • Windows 10.
  • Если вы компилируете любой из примеров для приложений UWP playReady DRM, необходимо использовать Microsoft Visual Studio 2015 или более поздней версии для компиляции примеров. Вы по-прежнему можете использовать Microsoft Visual Studio 2013 для компиляции любого из примеров из PlayReady DRM для приложений Магазина Windows 8.1.

Руководство по миграции приложений PlayReady UWP

В этом разделе содержатся сведения о переносе существующих приложений Магазина PlayReady Windows 8.x в Windows 10.

Пространство имен для приложений UWP PlayReady в Windows 10 было изменено с Microsoft.Media.PlayReadyClient на Windows.Media.Protection.PlayReady. Это означает, что вам потребуется выполнить поиск и заменить старое пространство имен новым в коде. Вы по-прежнему будете ссылаться на winmd-файл. Она входит в состав windows.media.winmd в операционной системе Windows 10. Он находится в windows.winmd в составе пакета SDK для Windows TH. Для UWP он ссылается в windows.foundation.univeralappcontract.winmd.

Чтобы воспроизвести содержимое с высоким уровнем определения (HD) (1080p) и ультра-высокоопределенного содержимого (UHD), необходимо реализовать аппаратное DRM PlayReady. Сведения о реализации аппаратного DRM PlayReady см. в разделе "Оборудование DRM".

Некоторые содержимое не поддерживается в аппаратном DRM. Сведения об отключении аппаратного DRM и включении программного drM см. в разделе "Переопределение аппаратного DRM".

В отношении диспетчера защиты мультимедиа убедитесь, что код имеет следующие параметры, если это еще не так:

var mediaProtectionManager = new Windows.Media.Protection.MediaProtectionManager();

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemId"] = 
             '{F4637010-03C3-42CD-B932-B48ADF3A6A54}'
var cpsystems = new Windows.Foundation.Collections.PropertySet();
cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = 
                "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput";
mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionContainerGuid"] = 
                "{9A04F079-9840-4286-AB92-E65BE0885F95}";

Упреждающее получение непрекращающейся лицензии перед воспроизведением

В этом разделе описывается, как заранее получать непрестойчивые лицензии перед началом воспроизведения.

В предыдущих версиях PlayReady DRM лицензии могут быть получены только во время воспроизведения. В этой версии вы можете заранее приобрести непрекращающиеся лицензии перед началом воспроизведения.

  1. Упреждающее создание сеанса воспроизведения, в котором можно хранить неизпреждаемую лицензию. Например:

    var cpsystems = new Windows.Foundation.Collections.PropertySet();       
    cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput"; // PlayReady
    
    var pmpSystemInfo = new Windows.Foundation.Collections.PropertySet();
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemId"] = "{F4637010-03C3-42CD-B932-B48ADF3A6A54}";
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;
    var pmpServer = new Windows.Media.Protection.MediaProtectionPMPServer( pmpSystemInfo );
    
  2. Привязывание этого сеанса воспроизведения к классу приобретения лицензий. Например:

    var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet();
    licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer;
    var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
    
  3. Создайте запрос службы лицензий. Например:

    var laSR = licenseSession.CreateLAServiceRequest();
    
  4. Выполните приобретение лицензии с помощью запроса на обслуживание, созданного на шаге 3. Лицензия будет храниться в сеансе воспроизведения.

  5. Свяжите сеанс воспроизведения с источником мультимедиа для воспроизведения. Например:

    licenseSession.configureMediaProtectionManager( mediaProtectionManager );
    videoPlayer.msSetMediaProtectionManager( mediaProtectionManager );
    

Запрос возможностей защиты

Начиная с Windows 10 версии 1703, вы можете запрашивать возможности DRM HW, такие как декодирование кодеков, разрешение и защита выходных данных (HDCP). Запросы выполняются с помощью метода IsTypeSupported , который принимает строку, представляющую возможности, для которых запрашивается поддержка, и строка, указывающая ключевую систему, к которой применяется запрос. Список поддерживаемых строковых значений см. на странице справочника ПО API для IsTypeSupported. В следующем примере кода показано использование этого метода.

using namespace Windows::Media::Protection;

ProtectionCapabilities^ sr = ref new ProtectionCapabilities();

ProtectionCapabilityResult result = sr->IsTypeSupported(
L"video/mp4; codecs=\"avc1.640028\"; features=\"decode-bpp=10,decode-fps=29.97,decode-res-x=1920,decode-res-y=1080\"",
L"com.microsoft.playready");

switch (result)
{
    case ProtectionCapabilityResult::Probably:
    // Queue up UHD HW DRM video
    break;

    case ProtectionCapabilityResult::Maybe:
    // Check again after UI or poll for more info.
    break;

    case ProtectionCapabilityResult::NotSupported:
    // Do not queue up UHD HW DRM video.
    break;
}

Добавление безопасной остановки

В этом разделе описывается, как добавить безопасную остановку в приложение UWP.

Безопасная остановка предоставляет средства для устройства PlayReady, чтобы уверенно утверждать в службе потоковой передачи мультимедиа, что воспроизведение мультимедиа остановлено для любого заданного содержимого. Эта возможность гарантирует, что службы потоковой передачи мультимедиа обеспечивают точное применение и отчеты об ограничениях использования на разных устройствах для данной учетной записи.

Существует два основных сценария отправки задачи безопасной остановки.

  • Когда презентация мультимедиа останавливается из-за достижения конца содержимого или когда пользователь остановил презентацию мультимедиа где-то в середине.
  • Когда предыдущий сеанс неожиданно завершается (например, из-за сбоя системы или приложения). Приложению потребуется запрашивать запросы при запуске или завершении работы для любых незадающихся сеансов безопасной остановки и отправки вызовов отдельно от любого другого воспроизведения мультимедиа.

Пример реализации безопасной остановки см. в файле securestop.cs в примере PlayReady, расположенном в браузере примеров кода.

Использование PlayReady DRM в Xbox One

Чтобы использовать PlayReady DRM в приложении UWP на Xbox One, сначала необходимо зарегистрировать учетную запись Центра партнеров, которую вы используете для публикации приложения для авторизации, чтобы использовать PlayReady. Это можно сделать одним из двух способов.

  • У вас есть контакт по запросу Майкрософт.
  • Примените авторизацию, отправив свою учетную запись Центра партнеров и имя pronxbox@microsoft.comкомпании.

После получения авторизации необходимо добавить дополнительный <DeviceCapability> элемент в манифест приложения. Вам придется добавить это вручную, так как в настоящее время в конструкторе манифестов приложений нет параметров. Выполните следующие действия, чтобы настроить его:

  1. Открыв проект в Visual Studio, откройте Обозреватель решений и щелкните правой кнопкой мыши Package.appxmanifest.

  2. Нажмите кнопку "Открыть с...", выберите редактор XML (текст) и нажмите кнопку "ОК".

  3. Между тегами добавьте следующее <Capabilities> <DeviceCapability>:

    <DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
    
  4. Сохраните файл.

Наконец, при использовании PlayReady на Xbox One есть одно последнее соображение: в комплектах средств разработки есть ограничение SL150 (то есть они не могут воспроизводить содержимое SL2000 или SL3000). Розничные устройства могут воспроизводить содержимое с более высоким уровнем безопасности, но для тестирования приложения в комплекте средств разработки вам потребуется использовать содержимое SL150. Это содержимое можно протестировать одним из следующих способов:

  • Используйте курированное тестовое содержимое, требующее лицензий SL150.
  • Реализуйте логику, чтобы только определенные тестовые учетные записи, прошедшие проверку подлинности, могли получать лицензии SL150 для определенного содержимого.

Используйте подход, который имеет наибольшее смысл для вашей компании и вашего продукта.

См. также