DRM de PlayReady

En este tema se describe cómo agregar contenido multimedia protegido con PlayReady a una aplicación para la Plataforma universal de Windows (UWP).

DRM de PlayReady permite a los desarrolladores crear aplicaciones para UWP preparadas para proporcionar contenido de PlayReady al usuario mientras se aplican las reglas de acceso definidas por el proveedor de contenido. Esta sección describe los cambios realizados en la tecnología DRM de Microsoft PlayReady para Windows 10 y cómo modificar la aplicación para UWP de PlayReady para que admita los cambios realizados en la versión anterior de Windows 8.1 a la versión de Windows 10.

Tema Descripción
DRM de hardware En este tema se ofrece una descripción general sobre cómo agregar la administración de derechos digitales (DRM) basada en hardware de PlayReady a una aplicación para UWP.
Streaming adaptable con PlayReady En este artículo se describe el proceso para agregar streaming adaptable de contenido multimedia con protección de contenido de Microsoft PlayReady a una aplicación para Plataforma universal de Windows (UWP). Actualmente, esta característica admite la reproducción de contenido HTTP Live Streaming (HLS) y Dynamic Adaptive Streaming over HTTP (DASH).

Novedades de la DRM de PlayReady

En la siguiente lista se describen las nuevas características y los cambios realizados en la DRM de PlayReady para Windows 10.

  • Se ha agregado la administración de derechos digitales de hardware (HWDRM).

    La compatibilidad con la protección de contenido basada en hardware permite la reproducción segura de contenido de alta definición (HD) y altísima definición (UHD) en diversas plataformas de dispositivos. Se protege el material de clave (incluyendo claves privadas, claves de contenido y cualquier otro material de clave que se use para derivar o desbloquear dichas claves), así como muestras de vídeo descifradas comprimidas y descomprimidas mediante el aprovechamiento de la seguridad de hardware. Cuando se usa DRM de hardware, los habilitadores desconocidos (reproducir en desconocido / reproducir en desconocido con downres) no tienen sentido, ya que la canalización HWDRM siempre sabe qué salida se está usando. Para obtener más información, consulte DRM de hardware.

  • PlayReady ya no es un componente de marco appX, sino que es un componente integrado en el sistema operativo. El espacio de nombres se cambió de Microsoft.Media.PlayReadyClient a Windows.Media.Protection.PlayReady.

  • Los siguientes encabezados que definen los códigos de error de PlayReady ahora forman parte del Kit de desarrollo de software de Windows (SDK): Windows.Media.Protection.PlayReadyErrors.h y Windows.Media.Protection.PlayReadyResults.h.

  • Proporciona la adquisición proactiva de licencias no persistentes.

    Las versiones anteriores de la tecnología DRM de PlayReady no admitían la adquisición proactiva de licencias no persistentes. Se ha agregado esta funcionalidad a esta versión. Esto puede reducir el tiempo para mostrar el primer fotograma. Para obtener más información, vea Adquirir proactivamente una licencia no persistente antes de la reproducción.

  • Proporciona la adquisición de varias licencias en un mensaje.

    Permite que la aplicación cliente adquiera varias licencias no persistentes en un solo mensaje de adquisición de licencia. Esto puede reducir el tiempo para mostrar el primer fotograma al adquirir licencias de varias partes del contenido mientras el usuario sigue explorando la biblioteca de contenido. Esto impide que se produzca un retraso en la adquisición de licencia cuando el usuario selecciona el contenido que quiere reproducir. Además, permite que las secuencias de audio y vídeo se cifren en claves independientes al habilitar un encabezado de contenido que incluye varios identificadores de claves (KID). Esto permite que una única adquisición de licencia adquiera todas las licencias para todas las secuencias dentro de un archivo de contenido, en lugar de tener que usar la lógica personalizada y varias solicitudes de adquisición de licencia para lograr el mismo resultado.

  • Se ha agregado soporte para la caducidad en tiempo real o una licencia de duración limitada (LDL).

    Proporciona la capacidad de establecer la caducidad en tiempo real en licencias y la transición sin problemas de una licencia que caduca a otra licencia (válida) en medio de una reproducción. Cuando se combina con la adquisición de varias licencias en un mensaje permite que una aplicación adquiera de forma asincrónica varias LDL mientras el usuario continúa explorando la biblioteca de contenido, y solo adquiere una licencia de mayor duración una vez que el usuario ha seleccionado el contenido que quiere reproducir. Por tanto, la reproducción comenzará más rápido (puesto que ya hay una licencia disponible) y, dado que la aplicación habrá adquirido una licencia de mayor duración, en el momento en que la LDL expire, continuará sin problemas la reproducción sin interrupciones hasta el final del contenido.

  • Se han agregado la cadenas de licencia no persistente.

  • Se ha agregado la compatibilidad con las restricciones basadas en tiempo (incluida la caducidad, la expiración después de la primera reproducción y la caducidad en tiempo real) en las licencias no persistentes.

  • Se ha agregado la compatibilidad con la directiva de HDCP de tipo 1 (versión 2.2 en Windows 10).

    Consulta Cosas a tener en cuenta para obtener más información.

  • Miracast ahora está implícito como salida.

  • Se ha agregado la detención segura.

    La detención segura proporciona los medios para que un dispositivo PlayReady se imponga con confianza a un servicio de transmisión por secuencias de multimedia que la reproducción multimedia ha detenido para un determinado contenido. Esta funcionalidad garantiza que los servicios de transmisión por secuencias de multimedia proporcionen una aplicación precisa e informes de limitaciones de uso en diferentes dispositivos de una cuenta determinada.

  • Se ha agregado la separación de la licencia de audio y vídeo.

    Pistas independientes impiden que el vídeo se descodifique como audio, lo cual permite una protección de contenido más sólida. Los estándares emergentes requieren claves independientes para pistas de audio y visuales.

  • Se ha agregado MaxResDecode.

    Esta función se agregó para limitar la reproducción de contenido a una resolución máxima incluso cuando se posee una clave más capaz (pero no una licencia). Admite casos en los que se codifican varios tamaños de flujo con una única clave.

Se agregaron a la tecnología DRM de PlayReady las siguientes nuevas interfaces, clases y enumeraciones:

Se ha creado una nueva muestra para mostrar cómo usar las nuevas características de la tecnología DRM de PlayReady. El ejemplo se puede descargar desde el Explorador de ejemplos de código.

Aspectos que se deben tener en cuenta:

  • La DRM de PlayReady ahora admite HDCP de tipo 1 (admitida en HDCP versión 2.1 o posterior). PlayReady incluye en la licencia una directiva de restricción de tipo de HDCP que el dispositivo debe aplicar. En Windows 10, esta directiva exigirá que se use HDCP 2.2 o posterior. Esta característica puede habilitarse en la licencia del SDK del servidor PlayReady v3.0 (el servidor controla esta directiva en la licencia mediante el GUID de restricción de tipo de HDCP). Para obtener más información, consulte Reglas de cumplimiento y solidez de PlayReady.
  • Windows Media Video (también conocido como VC-1) no se admite en DRM de hardware (consulte Invalidar DRM de hardware).
  • La tecnología DRM de PlayReady es ahora compatible con el estándar de compresión de vídeo Codificación de vídeo de alta eficiencia (HEVC /H.265). Para admitir HEVC, la aplicación debe usar contenido del esquema de cifrado común (CENC) versión 2 que incluye dejar desactivados los encabezados de división de contenido. Consulte ISO/IEC 23001-7 Tecnologías de la información -- Tecnologías de sistemas MPEG -- Parte 7: Cifrado común en archivos de formato de archivo multimedia base ISO (se requiere la versión iso/IEC 23001-7:2015 o posterior). para obtener más información. Microsoft también recomienda usar CENC versión 2 para todo el contenido de HWDRM. Además, algunos DRM de hardware admitirán HEVC y algunos no (consulte Invalidar DRM de hardware).
  • Para aprovechar las ventajas de determinadas características nuevas de PlayReady 3.0 (lo que incluye, entre otras cosas, SL3000 para los clientes basados en hardware, la adquisición de varias licencias no persistentes en un mensaje de adquisición de licencia y restricciones basadas en el tiempo o licencias no persistentes); asimismo, es necesario que el servidor PlayReady sea la versión de lanzamiento del Kit de desarrollo de Software del servidor de Microsoft PlayReady v3.0.2769 o posterior.
  • En función de la directiva sobre protección de salida especificada en la licencia de contenido, los usuarios finales podrían encontrarse con errores en la reproducción de multimedia si la salida conectada no es compatible con estos requisitos. La siguiente tabla enumera el conjunto de errores comunes que se producen como consecuencia de lo anterior. Para obtener más información, consulte Reglas de cumplimiento y solidez de PlayReady.
Error Valor Descripción
ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP 0xC0262513 La Directiva de protección de salida de la licencia requiere que el monitor active la especificación HDCP, pero no se pudo activar.
MF_E_POLICY_UNSUPPORTED 0xC00D7159 La Directiva de protección de salida de la licencia requiere que el monitor active la especificación HDCP de tipo 1, pero no se pudo activar.
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET 0x8004CD22 Este código de error solo se produce cuando se ejecuta en DRM de hardware. La directiva de protección de salida de la licencia requiere que el monitor active el HDCP o reduzca la resolución eficaz del contenido, pero no se puede activar el HDCP y la resolución eficaz del contenido no se puede reducir porque DRM de hardware no admite que se reduzca la resolución del contenido. En la tecnología DRM de software, el contenido sí se reproduce. Consulte Consideraciones sobre el uso de DRM de hardware.
ERROR_GRAPHICS_OPM_NOT_SUPPORTED 0xc0262500 El controlador de elementos gráficos no admite la protección de salida. Por ejemplo, el monitor está conectado a través de VGA o no está instalado un controlador de elementos gráficos adecuado para la salida digital. En este último caso, el controlador habitual que se instala es el Adaptador de pantalla básico de Microsoft y el problema se resuelve con la instalación de un controlador de gráficos adecuado.

Protección de salida

En la siguiente sección se describe el comportamiento al usar la DRM de PlayReady para Windows 10 con las directivas de protección de salida en una licencia de PlayReady.

La DRM de PlayReady admite los niveles de protección de salida que contiene la especificación de derechos de multimedia extensible de Microsoft PlayReady. Este documento puede encontrarse en el paquete de la documentación que se entrega con los productos con licencia de PlayReady.

Nota:

Los valores permitidos para los niveles de protección de salida que un servidor de licencias puede establecer se rigen por las PlayReady Compliance Rules (Reglas de cumplimiento de PlayReady).

La DRM de PlayReady permite la reproducción de contenido con directivas de protección de salida únicamente en conectores de salida del modo especificado en las reglas de cumplimiento de PlayReady. Para obtener más información sobre las condiciones de los conectores de salida especificadas en las reglas de cumplimiento de PlayReady, consulta Defined Terms for PlayReady Compliance and Robustness Rules (Términos definidos para las reglas de solidez y cumplimiento de PlayReady).

Esta sección se centra en los escenarios de protección de salida con DRM de PlayReady para Windows 10 y de DRM de hardware de PlayReady para Windows 10, que también está disponible en algunos clientes de Windows. Con la HWDRM de PlayReady, todas las protecciones de salida se aplican desde dentro de la implementación de Windows TEE (consulta DRM de hardware). Como resultado, algunos comportamientos varían respecto a cuando se usa la SWDRM (DRM de software) de PlayReady:

  • Compatibilidad con el nivel de protección de salida (OPL) para vídeo digital sin comprimir 270: La HWDRM de PlayReady para Windows 10 no admite una resolución menor y aplicará el uso de esa HDCP (protección de contenido digital de ancho de banda elevado). Recomendamos que el contenido de alta definición para la HWDRM tenga un OPL mayor de 270 (aunque no es necesario). Además, deberías establecer una restricción de tipo de HDCP en la licencia (HDCP versión 2.2 o posterior).
  • A diferencia de la SWDRM, con la HWDRM se aplican protecciones de salida a todos los monitores basadas en el monitor menos capacitado. Por ejemplo, si el usuario tiene dos monitores conectados y uno de ellos es compatible con HDCP y el otro no, se producirá un error en la reproducción si la licencia requiere HDCP, incluso si el contenido solamente se representa en el monitor compatible con HDCP. En el caso de la SWDRM, el contenido se reproducirá siempre que solo se represente en el monitor compatible con HDCP.
  • No se garantiza que el cliente pueda usar la HWDRM ni que esta sea segura, a menos que las claves de contenido y las licencias cumplan las siguientes condiciones:
    • La licencia que se use para la clave de contenido de vídeo debe tener un nivel de seguridad mínimo de 3000.
    • El audio debe estar cifrado con una clave de contenido distinta que el vídeo, y la licencia que se use para el audio debe tener un nivel de seguridad mínimo de 2000. Como alternativa, el audio podría dejarse sin cifrar.
  • Todos los escenarios de la SWDRM requieren que el nivel mínimo de seguridad de la licencia de PlayReady usado para la clave de contenido de audio o vídeo sea menor o igual a 2000.

Niveles de protección de salida

En la siguiente tabla se muestran las asignaciones entre varios OPL en la licencia de PlayReady y cómo las aplica la DRM de PlayReady para Windows 10.

Vídeo

OPL Vídeo digital comprimido Vídeo digital sin comprimir TV analógica
Any HDMI, DVI, DisplayPort, MHL Componente, compuesto
100 N/A\* Pasa contenido. Pasa contenido.
150 N/A\* Pasa contenido cuando CopyNever de CGMS-A está ocupado o si no se puede usar CGMS A.
200 Pasa contenido cuando se usa CopyNever de CGMS-A.
250 Intenta usar HDCP, pero pasa contenido independientemente del resultado. N/A\*
270 SWDRM: intenta usar HDCP. Si no se puede usar HDCP, el equipo restringirá la resolución eficaz a 520 000 píxeles por fotograma y pasará el contenido. HWDRM: pasa contenido con HDCP. Si no se puede usar HDCP, se bloquea la reproducción en los puertos HDMI/DVI.
300

**Cuando no se define la restricción de tipo HDCP:** Pasa contenido con HDCP. Si no se puede usar HDCP, se bloquea la reproducción en los puertos HDMI/DVI.

**Cuando se define la restricción de tipo HDCP**: pasa contenido con HDCP 2.2 y el tipo de secuencia de contenido establecido en 1. Si no se puede usar HDCP o el tipo de secuencia de contenido no se puede establecer en 1, se bloquea la reproducción a los puertos HDMI/DVI.

400 Windows 10 nunca pasa contenido de vídeo digital comprimido a salidas, independientemente del valor del OPL posterior. Para obtener más información sobre el contenido de vídeo digital comprimido, consulta Compliance Rules for PlayReady Products (Reglas de cumplimiento para productos PlayReady). N/A\*
500

* No todos los valores de los niveles de protección de salida se pueden establecer mediante un servidor de licencias. Para más información, consulte el documento PlayReady Compliance Rules.

Audio

OPL Audio digital comprimido Audio digital sin comprimir Audio analógico o USB
HDMI, DisplayPort, MHL HDMI, DisplayPort, MHL Any
100 Pasa contenido. Pasa contenido. Pasa contenido.
150 No pasa contenido.
200
250 Pasa contenido cuando se usa HDCP en HDMI, DisplayPort o MHL, o si se usa SCMS y se establece en CopyNever.
300 Pasa contenido cuando se usa HDCP en HDMI, DisplayPort o MHL.

Miracast

La DRM de PlayReady permite reproducir contenido a través de la salida Miracast en cuanto se usa HDCP 2.0 o posterior. Sin embargo, en Windows 10, Miracast se considera una salida digital. Para obtener más información acerca de los escenarios de Miracast, consulta PlayReady Compliance Rules (Reglas de cumplimiento de PlayReady). La siguiente tabla delinea las asignaciones entre varios OPL en la licencia de PlayReady y cómo la DRM de PlayReady las aplica en salidas de Miracast.

OPL Audio digital comprimido Audio digital sin comprimir Vídeo digital comprimido Vídeo digital sin comprimir
100 Pasa contenido cuando se usa HDCP 2.0 o posterior. Si no se puede usar, no pasa contenido Pasa contenido cuando se usa HDCP 2.0 o posterior. Si no se puede usar, no pasa contenido N/A\* Pasa contenido cuando se usa HDCP 2.0 o posterior. Si no se puede usar, no pasa contenido
150 No pasa contenido. N/A\*
200
250 Pasa contenido cuando se usa HDCP 2.0 o posterior. Si no se puede usar, no pasa contenido
270 N/A\*
300 Pasa contenido cuando se usa HDCP 2.0 o posterior. Si no se puede usar, no pasa contenido No pasa contenido.

**Cuando no se define la restricción de tipo HDCP:** Pasa el contenido cuando se activa HDCP 2.0 o posterior. Si no se puede usar, NO pasa contenido.

**Cuando se define la restricción de tipo HDCP:** Pasa contenido con HDCP 2.2 y el tipo de flujo de contenido establecido en 1. Si no se puede usar HDCP o el tipo de secuencia de contenido no se puede establecer en 1, no pasa contenido.

400 N/A\* Windows 10 nunca pasa contenido de vídeo digital comprimido a salidas, independientemente del valor del OPL posterior. Para obtener más información sobre el contenido de vídeo digital comprimido, consulta Compliance Rules for PlayReady Products (Reglas de cumplimiento para productos PlayReady). N/A\*
500

* No todos los valores de los niveles de protección de salida se pueden establecer mediante un servidor de licencias. Para más información, consulte el documento PlayReady Compliance Rules.

Restricciones de salida explícitas adicionales

La siguiente tabla describe la implementación de la DRM de PlayReady para Windows 10 de las restricciones explícitas de protección de salida de vídeo digital.

Escenario GUID Si... En ese caso...
Tamaño máximo de descodificación de resolución efectiva 9645E831-E01D-4FFF-8342-0A720E3E028F La salida conectada es: Salida de vídeo digital, Miracast, HDMI, DVI, etc.

Pasa contenido cuando está restringido a:

  • (a) El ancho del fotograma debe ser menor o igual que el ancho máximo del fotograma en píxeles, y el alto del fotograma menor o igual que el alto máximo del fotograma en píxeles, o
  • (b) El alto del fotograma debe ser menor o igual que el ancho máximo del fotograma en píxeles, y el ancho del fotograma menor o igual que el alto máximo del fotograma en píxeles.
Restricción del tipo de HDCP ABB2C6F1-E663-4625-A945-972D17B231E7 La salida conectada es: Salida de vídeo digital, Miracast, HDMI, DVI, etc. Pasa contenido con HDCP 2.2 y el tipo de secuencia de contenido establecido en 1. Si no se puede usar HDCP 2.2 o el tipo de secuencia de contenido no se puede establecer en 1, no pasa contenido. También debe especificarse el nivel de protección de salida del vídeo digital sin comprimir de un valor mayor o igual a 271

La siguiente tabla describe la implementación de la DRM de PlayReady para Windows 10 de las restricciones explícitas de protección de salida de vídeo analógico.

Escenario GUID Si... En ese caso...
Monitor de PC analógico D783A191-E083-4BAF-B2DA-E69F910B3772 La salida conectada es: VGA, DVI–analógica, etc. SWDRM: el equipo restringirá la resolución eficaz a 520 000 epx por fotograma y pasará contenido. HWDRM: No pasa contenido.
Componente analógico 811C5110-46C8-4C6E-8163-C0482A15D47E La salida conectada es: Componente SWDRM: el equipo restringirá la resolución eficaz a 520 000 epx por fotograma y pasará contenido. HWDRM: No pasa contenido.
Salidas de TV analógica 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 El OPL de la TV analógica es menor que 151. Debe usarse CGMS-A.
225CD36F-F132-49EF-BA8C-C91EA28E4369 El OPL de la TV analógica es menor que 101 y la licencia no contiene 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3. Debe intentarse el uso de CGMS-A, pero el contenido se puede reproducir independientemente del resultado.
Control de la ganancia y franjas de color automáticos C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA Pasar contenido con una resolución menor o igual a 520 000 px a una salida de TV analógica Establece AGC solo para el vídeo de componente y el modo PAL cuando la resolución es inferior a 520 000 px y establece la información de AGC y franjas de color para NTSC cuando la resolución es inferior a 520 000 px, de acuerdo con lo indicado en la tabla 3.5.7.3. en las reglas de cumplimiento
Solo salida digital 760AE755-682A-41E0-B1B3-DCDF836A7306 La salida conectada es analógica No pasa contenido.

Nota:

Si se usa una llave de adaptador, como "Mini DisplayPort a VGA" para la reproducción, Windows 10 ve el resultado como salida de vídeo digital y no puede aplicar las directivas de vídeo analógico.

En la siguiente tabla se describe la implementación de DRM de PlayReady para Windows 10 que permite reproducir en otras circunstancias.

Escenario GUID Si... En ese caso...
Salida desconocida 786627D8-C2A6-44BE-8F88-08AE255B01A7 Si no se puede determinar la salida de un modo razonable o no se puede establecer OPM con el controlador de gráficos. SWDRM: Pasa contenido. HWDRM: No pasa contenido.
Salida desconocida con restricción. B621D91F-EDCC-4035-8D4B-DC71760D43E9 Si no se puede determinar la salida de un modo razonable o no se puede establecer OPM con el controlador de gráficos. SWDRM: el equipo restringirá la resolución eficaz a 520 000 epx por fotograma y pasará contenido. HWDRM: No pasa contenido.

Requisitos previos

Antes de empezar a crear la aplicación para UWP protegida con PlayReady, es necesario instalar el siguiente software en el sistema:

  • Windows 10
  • Debes usar Microsoft Visual Studio 2015 o una versión posterior si pretendes compilar cualquiera de las muestras para aplicaciones para UWP para DRM de PlayReady. Todavía se puede usar Microsoft Visual Studio 2013 para compilar cualquiera de las muestras de la tecnología DRM de PlayReady para aplicaciones de la Tienda para Windows 8.1.

Guía de migración de aplicaciones para UWP de PlayReady

Esta sección incluye información sobre cómo migrar las aplicaciones PlayReady de la Tienda Windows 8.x existentes a Windows 10.

El espacio de nombres de las aplicaciones para UWP en Windows 10 se cambió de Microsoft.Media.PlayReadyClient a Windows.Media.Protection.PlayReady. Esto significa que tendrás que buscar y reemplazar el espacio de nombres antiguo por uno nuevo en el código. Seguirás haciendo referencia a un archivo winmd. Forma parte de windows.media.winmd en el sistema operativo Windows 10. Está en el windows.winmd como parte del Windows SDK de TH. Para UWP, se hace referencia en windows.foundation.univeralappcontract.winmd.

Para reproducir contenido protegido por PlayReady de alta definición (HD) (1080p) y contenido de altísima definición (UHD), tendrás que implementar DRM de hardware PlayReady. Para obtener información sobre cómo implementar DRM de hardware de PlayReady, consulte DRM de hardware.

Algunos contenidos no son compatibles con la tecnología DRM de hardware. Para obtener información sobre cómo deshabilitar DRM de hardware y habilitar DRM de software, consulte Invalidación de DRM de hardware.

En lo relacionado con el administrador de protección multimedia, asegúrate de que el código tenga la siguiente configuración si es que no la tiene ya:

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}";

Adquirir de forma proactiva una licencia no persistente antes de la reproducción

En esta sección se describe cómo obtener licencias no persistentes de forma proactiva antes de que empiece la reproducción.

En versiones anteriores del DRM de PlayReady, las licencias no persistentes solo se podían obtener de forma reactiva durante la reproducción. En esta versión, puedes adquirir licencias no persistentes de forma proactiva antes de que empiece la reproducción.

  1. Crear de forma proactiva una sesión de reproducción donde se pueda almacenar la licencia no persistente. Por ejemplo:

    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. Vincula esa sesión de reproducción a la clase de adquisición de licencia. Por ejemplo:

    var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet();
    licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer;
    var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
    
  3. Crea una solicitud de servicio de licencia. Por ejemplo:

    var laSR = licenseSession.CreateLAServiceRequest();
    
  4. Realiza la adquisición de licencia con la solicitud de servicio creada en el paso 3. La licencia se almacenará en la sesión de reproducción.

  5. Vincula la sesión de reproducción al origen multimedia de la reproducción. Por ejemplo:

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

Consulta de funcionalidades de protección

A partir de Windows 10, versión 1703, puedes consultar las funcionalidades drm de HW, como descodificar códecs, resolución y protecciones de salida (HDCP). Las consultas se realizan con el método IsTypeSupported , que toma una cadena que representa las funcionalidades para las que se consulta la compatibilidad y una cadena que especifica el sistema de claves al que se aplica la consulta. Para obtener una lista de los valores de cadena admitidos, consulte la página de referencia de la API para IsTypeSupported. En el ejemplo de código siguiente se muestra el uso de este método.

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;
}

Agregar una detención segura

Esta sección describe cómo agregar una detención segura a una aplicación para UWP.

La detención segura proporciona los medios para que un dispositivo PlayReady se imponga con confianza a un servicio de transmisión por secuencias de multimedia que la reproducción multimedia ha detenido para un determinado contenido. Esta funcionalidad garantiza que los servicios de transmisión por secuencias de multimedia proporcionen una aplicación precisa e informes de limitaciones de uso en diferentes dispositivos de una cuenta determinada.

Hay dos escenarios principales para el envío de un desafío de detención segura:

  • Cuando se detiene la presentación multimedia porque se ha alcanzado el final del contenido o cuando el usuario detiene la presentación multimedia en algún lugar en mitad del proceso.
  • Cuando la sesión anterior termina inesperadamente (por ejemplo, debido a un bloqueo del sistema o la aplicación). La aplicación tendrá que consultar, ya sea al inicio o apagado, las sesiones de detención segura pendientes y enviar los desafíos independientemente de otras reproducciones de multimedia.

Para obtener una implementación de ejemplo de detención segura, consulte el archivo securestop.cs en el ejemplo de PlayReady ubicado en el explorador de ejemplo de código.

Usar DRM de PlayReady en Xbox One

Para usar DRM de PlayReady en una aplicación para UWP en Xbox One, primero tendrás que registrar tu cuenta del Centro de partners que usas para publicar la aplicación para que la autorización use PlayReady. Puede hacerlo de una de las maneras siguientes:

  • Hacer que tu contacto de Microsoft solicite permiso.
  • Solicite autorización mediante el envío de su cuenta del Centro de partners y el nombre de la empresa a pronxbox@microsoft.com.

Una vez que recibas la autorización, tendrás que agregar un elemento <DeviceCapability> adicional en el manifiesto de la aplicación. Tendrás que hacerlo de forma manual porque actualmente no hay ninguna opción disponible en el Diseñador de manifiestos de aplicaciones. Sigue estos pasos para configurarlo:

  1. Con el proyecto abierto en Visual Studio, abre el Explorador de soluciones y haz clic en Package.appxmanifest.

  2. Selecciona Abrir con..., elige Editor XML (texto) y haz clic en Aceptar.

  3. Entre las etiquetas <Capabilities>, agrega la siguiente <DeviceCapability>:

    <DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
    
  4. Guarde el archivo.

Por último, hay una última consideración al usar PlayReady en Xbox One: en los kits de desarrollo, existe un límite de SL150 (es decir, no pueden reproducir contenido de SL2000 o SL3000). Los dispositivos comerciales pueden reproducir contenido con mayor niveles de seguridad, pero para probar la aplicación en un kit de desarrollo, tendrás que usar contenido de SL150. Puedes probar este contenido de las siguientes formas:

  • Usa el contenido de prueba protegido que requiere licencias de SL150.
  • Implementa la lógica para que solo determinadas cuentas de prueba autenticadas puedan adquirir licencias de SL150 para cierto contenido.

Usa el enfoque que tiene más sentido para tu empresa y el producto.

Vea también