DRM de PlayReady
En este tema se describe cómo agregar contenido multimedia protegido de PlayReady a la aplicación de Plataforma universal de Windows (UWP).
DRM de PlayReady permite a los desarrolladores crear aplicaciones para UWP capaces de proporcionar contenido de PlayReady al usuario mientras se aplican las reglas de acceso definidas por el proveedor de contenido. En esta sección se describen los cambios realizados en DRM de Microsoft PlayReady para Windows 10 y cómo modificar la aplicación para UWP de PlayReady para admitir los cambios realizados desde la versión anterior de Windows 8.1 a la versión de Windows 10.
Tema | Descripción |
---|---|
Hardware DRM | En este tema se proporciona información general sobre cómo agregar la administración de derechos digitales (DRM) basada en hardware de PlayReady a la aplicación para UWP. |
Streaming adaptable con PlayReady | En este artículo se describe cómo agregar streaming adaptable de contenido multimedia con la protección de contenido de Microsoft PlayReady a una aplicación de Plataforma universal de Windows (UWP). Esta característica admite actualmente la reproducción de contenido de Http Live Streaming (HLS) y de Streaming dinámico a través de HTTP (DASH). |
Novedades de DRM de PlayReady
En la lista siguiente se describen las nuevas características y los cambios realizados en DRM de PlayReady para Windows 10.
Se ha agregado 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 ultra alta definición (UHD) en varias plataformas de dispositivos. El material de clave (incluidas las claves privadas, las claves de contenido y cualquier otro material de clave usado para derivar o desbloquear dichas claves) y los ejemplos de vídeo comprimidos y sin comprimir se protegen aprovechando la seguridad de hardware. Cuando se usa DRM de hardware, ninguno de los habilitadores desconocidos (jugar a desconocidos o reproducir en desconocidos con downres) tiene significado como la canalización de HWDRM siempre conoce la salida que se está usando. Para obtener más información, consulte DRM de hardware.
PlayReady ya no es un componente de marco appX, pero en su lugar es un componente de sistema operativo in-box. El espacio de nombres se cambió de Microsoft.Media.PlayReadyClient a Windows.Media.Protection.PlayReady.
Los encabezados siguientes que definen los códigos de error de PlayReady forman parte del Kit de desarrollo de software de Windows (SDK): Windows.Media.Protection.PlayReadyErrors.h y Windows.Media.Protection.PlayReadyResults.h.
Proporciona una adquisición proactiva de licencias no persistentes.
Las versiones anteriores de DRM de PlayReady no admitieron la adquisición proactiva de licencias no persistentes. Esta funcionalidad se ha agregado a esta versión. Esto puede reducir el tiempo de primer fotograma. Para obtener más información, consulte 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 mensaje de adquisición de licencias. Esto puede reducir el tiempo de primer fotograma mediante la adquisición de licencias para varios fragmentos de contenido mientras el usuario sigue explorando la biblioteca de contenido; Esto evita un retraso en la adquisición de licencias cuando el usuario selecciona el contenido que se va a reproducir. Además, permite que las secuencias de audio y vídeo se cifren para separar las claves habilitando un encabezado de contenido que incluya varios identificadores de clave (KID); esto permite que una única adquisición de licencias adquiera todas las licencias de todos los flujos dentro de un archivo de contenido en lugar de tener que usar lógica personalizada y varias solicitudes de adquisición de licencias para lograr el mismo resultado.
Se ha agregado compatibilidad con la expiración en tiempo real o una licencia de duración limitada (LDL).
Proporciona la capacidad de establecer la expiración en tiempo real en las licencias y pasar sin problemas de una licencia de expiración a otra licencia (válida) en medio de la reproducción. Cuando se combina con la adquisición de varias licencias en un mensaje, esto permite a una aplicación adquirir varios LDL de forma asincrónica mientras el usuario sigue explorando la biblioteca de contenido y solo adquiere una licencia de duración más larga una vez que el usuario ha seleccionado contenido para reproducir. La reproducción se iniciará más rápidamente (ya que ya hay una licencia disponible) y, dado que la aplicación habrá adquirido una licencia de duración más larga durante el tiempo en que expire EL VALOR de LDL, continúe reproducción sin problemas al final del contenido sin interrupciones.
Se agregaron cadenas de licencias no persistentes.
Se ha agregado compatibilidad con restricciones basadas en tiempo (incluida la expiración, expiración después de la primera reproducción y expiración en tiempo real) en licencias no persistentes.
Se ha agregado compatibilidad con directivas de TIPO 1 de HDCP (versión 2.2 en Windows 10).
Consulte Aspectos que se deben tener en cuenta para obtener más información.
Miracast ahora es implícito como salida.
Se ha agregado una parada segura.
La detención segura proporciona los medios para que un dispositivo PlayReady aserte con confianza a un servicio de streaming multimedia que la reproducción multimedia se ha detenido para cualquier fragmento de contenido determinado. Esta funcionalidad garantiza que los servicios de streaming multimedia proporcionan una aplicación precisa y la generación de informes de limitaciones de uso en diferentes dispositivos para una cuenta determinada.
Se ha agregado separación de licencias de audio y vídeo.
Las pistas independientes impiden que el vídeo se descodifique como audio; habilitando una protección de contenido más sólida. Los estándares emergentes requieren claves independientes para pistas visuales y de audio.
Se ha agregado MaxResDecode.
Esta característica se agregó para limitar la reproducción del 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 secuencia con una sola clave.
Las siguientes interfaces, clases y enumeraciones nuevas se agregaron a DRM de PlayReady:
- Interfaz IPlayReadyLicenseAcquisitionServiceRequest
- Interfaz IPlayReadyLicenseSession
- Interfaz IPlayReadySecureStopServiceRequest
- Clase PlayReadyLicenseSession
- Clase PlayReadySecureStopIterable
- Clase PlayReadySecureStopIterator
- Enumerador PlayReadyHardwareDRMFeatures
Se ha creado un nuevo ejemplo para demostrar cómo usar las nuevas características de DRM de PlayReady. El ejemplo se puede descargar desde el Explorador de ejemplos de código.
Cosas que hay que tener en cuenta
- Drm de PlayReady ahora es compatible con el tipo 1 de HDCP (compatible con HDCP versión 2.1 o posterior). PlayReady incluye una directiva de restricción de tipos de HDCP en la licencia para que el dispositivo aplique. En Windows 10, esta directiva aplicará que HDCP 2.2 o posterior esté activado. Esta característica se puede habilitar en la licencia del SDK de PlayReady Server v3.0 (el servidor controla esta directiva en la licencia mediante el GUID de restricción de tipos 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).
- Drm de PlayReady ahora admite el estándar de compresión de vídeo de alta eficiencia (HEVC /H.265). Para admitir HEVC, la aplicación debe usar contenido de la versión 2 del esquema de cifrado común (CENC), que incluye dejar los encabezados de segmento del contenido sin cifrar. 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 una versión ISO/IEC 23001-7:2015 o posterior). 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 ciertas nuevas características de PlayReady 3.0 (incluidas, entre otras, SL3000 para clientes basados en hardware, adquirir varias licencias no persistentes en un mensaje de adquisición de licencias y restricciones basadas en el tiempo en licencias no persistentes), es necesario que el servidor PlayReady sea el Kit de desarrollo de software de Microsoft PlayReady Server v3.0.2769 o posterior.
- En función de la directiva de protección de salida especificada en la licencia de contenido, la reproducción multimedia puede producir un error para los usuarios finales si su salida conectada no admite esos requisitos. En la tabla siguiente se muestra el conjunto de errores comunes que se producen como resultado. 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 interactúe con HDCP, pero HDCP no se pudo activar. |
MF_E_POLICY_UNSUPPORTED | 0xC00D7159 | La directiva de protección de salida de la licencia requiere que el monitor interactúe con el tipo 1 de HDCP, pero no se pudo activar el tipo 1 de HDCP. |
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET | 0x8004CD22 | Este código de error solo se produce cuando se ejecuta bajo DRM de hardware. La directiva de protección de salida de la licencia requiere que el monitor interactúe con HDCP o reduzca la resolución efectiva del contenido, pero HDCP no se pudo activar y no se pudo reducir la resolución efectiva del contenido porque DRM de hardware no admite reducir la resolución del contenido. En DRM de software, el contenido se reproduce. Consulte Consideraciones sobre el uso de DRM de hardware. |
ERROR_GRAPHICS_OPM_NOT_SUPPORTED | 0xc0262500 | El controlador de gráficos no admite la protección de salida. Por ejemplo, el monitor se conecta a través de VGA o no se instala un controlador gráfico adecuado para la salida digital. En este último caso, el controlador típico instalado es el adaptador de pantalla básico de Microsoft e instalar un controlador gráfico adecuado resolverá el problema. |
Protección de salida
En la sección siguiente se describe el comportamiento al usar DRM de PlayReady para Windows 10 con directivas de protección de salida en una licencia de PlayReady.
DRM de PlayReady admite niveles de protección de salida contenidos en la especificación de derechos multimedia extensibles de Microsoft PlayReady. Este documento se puede encontrar en el paquete de documentación que viene con productos con licencia de PlayReady.
Nota:
Los valores permitidos para los niveles de protección de salida que puede establecer un servidor de licencias se rigen por las reglas de cumplimiento de PlayReady.
DRM de PlayReady permite la reproducción de contenido con directivas de protección de salida solo en conectores de salida, tal como se especifica en las reglas de cumplimiento de PlayReady. Para obtener más información sobre los términos del conector de salida especificados en las reglas de cumplimiento de PlayReady, consulte Términos definidos para reglas de cumplimiento y solidez de PlayReady.
Esta sección se centra en escenarios de protección de salida con DRM de PlayReady para DRM de hardware de Windows 10 y PlayReady para Windows 10, que también está disponible en algunos clientes de Windows. Con PlayReady HWDRM, todas las protecciones de salida se aplican desde la implementación de Windows TEE (consulte DRM de hardware). Como resultado, algunos comportamientos difieren de cuando se usa PLAYReady SWDRM (DRM de software):
- Compatibilidad con el nivel de protección de salida (OPL) para vídeo digital sin comprimir 270: PlayReady HWDRM para Windows 10 no admite la resolución descendente y aplicará que HDCP (Protección de contenido digital de ancho de banda alto) está activado. Se recomienda que el contenido de alta definición para HWDRM tenga un OPL mayor que 270 (aunque no es necesario). Además, debe establecer la restricción de tipo HDCP en la licencia (HDCP versión 2.2 o posterior).
- A diferencia de SWDRM, con HWDRM, se aplican protecciones de salida en todos los monitores basados en el monitor menos capaz. Por ejemplo, si el usuario tiene dos monitores conectados donde uno admite HDCP y el otro no, se producirá un error en la reproducción si la licencia requiere HDCP aunque el contenido solo se represente en el monitor que admita HDCP. En SWDRM, el contenido se reproducirá siempre y cuando solo se represente en el monitor que admita HDCP.
- El cliente no garantiza que HWDRM los use y proteja, a menos que las claves de contenido y las licencias cumplan las condiciones siguientes:
- La licencia usada para la clave de contenido de vídeo debe tener un nivel de seguridad mínimo de 3000.
- El audio debe cifrarse en una clave de contenido diferente a la de vídeo y la licencia usada para el audio debe tener un nivel de seguridad mínimo de 2000. Como alternativa, el audio podría dejarse claro.
- Todos los escenarios SWDRM requieren que el nivel de seguridad mínimo de la licencia playReady utilizada para la clave de contenido de audio o vídeo sea inferior o igual a 2000.
Niveles de protección de salida
En la tabla siguiente se describen las asignaciones entre varias OPLs de la licencia de PlayReady y cómo PlayReady DRM para Windows 10 las aplica.
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 CGMS-A CopyNever está activado o si CGMS-A no se puede activar | ||
200 | Pasa contenido cuando CGMS-A CopyNever está comprometido | |||
250 | Intenta interactuar con HDCP, pero pasa contenido independientemente del resultado. | N/A\* | ||
270 | SWDRM: intenta interactuar con HDCP. Si HDCP no se puede conectar, el equipo restringirá la resolución efectiva a 520 000 píxeles por fotograma y pasará el contenido. | HWDRM: pasa contenido con HDCP. Si HDCP no se puede conectar, se bloquea la reproducción a puertos HDMI/DVI. | ||
300 |
**Cuando no se define la restricción de tipo HDCP:** Pasa contenido con HDCP. Si HDCP no se puede conectar, se bloquea la reproducción a 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 HDCP no puede interactuar o el tipo de secuencia de contenido no se puede establecer en 1, se bloquea la reproducción en puertos HDMI/DVI. |
|||
400 | Windows 10 nunca pasa contenido de vídeo digital comprimido a salidas, independientemente del valor OPL posterior. Para obtener más información sobre el contenido de vídeo digital comprimido, consulte las 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 HDCP está activado en HDMI, DisplayPort o MHL, o cuando SCMS está activado y establecido en CopyNever | ||
300 | Pasa contenido cuando HDCP está activado en HDMI, DisplayPort o MHL |
Miracast
DRM de PlayReady le permite reproducir contenido a través de la salida de Miracast tan pronto como se activa HDCP 2.0 o posterior. Sin embargo, en Windows 10, Miracast se considera una salida digital . Para obtener más información sobre los escenarios de Miracast, consulte las reglas de cumplimiento de PlayReady. En la tabla siguiente se describen las asignaciones entre varias OPLs de la licencia de PlayReady y cómo PlayReady DRM las aplica en las 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 activa HDCP 2.0 o posterior. Si no se puede interactuar, no pasa contenido | Pasa contenido cuando se activa HDCP 2.0 o posterior. Si no se puede interactuar, no pasa contenido | N/A\* | Pasa contenido cuando se activa HDCP 2.0 o posterior. Si no se puede interactuar, no pasa contenido |
150 | No pasa contenido | N/A\* | ||
200 | ||||
250 | Pasa contenido cuando se activa HDCP 2.0 o posterior. Si no se puede interactuar, no pasa contenido | |||
270 | N/A\* | |||
300 | Pasa contenido cuando se activa HDCP 2.0 o posterior. Si no se puede interactuar, no pasa contenido | No pasa contenido |
**Cuando no se define la restricción de tipo HDCP:** Pasa contenido cuando se activa HDCP 2.0 o posterior. Si no se puede interactuar, no pasa contenido. **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 HDCP no puede interactuar 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 OPL posterior. Para obtener más información sobre el contenido de vídeo digital comprimido, consulte las 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
En la tabla siguiente se describe la implementación de DRM de PlayReady para Windows 10 de 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, etcetera. |
Pasa contenido cuando está restringido a:
|
Restricción de tipos de HDCP | ABB2C6F1-E663-4625-A945-972D17B231E7 | La salida conectada es: salida de vídeo digital, Miracast, HDMI, DVI, etcetera. | Pasa contenido con HDCP 2.2 y el tipo de secuencia de contenido establecido en 1. Si HDCP 2.2 no puede interactuar o el tipo de secuencia de contenido no se puede establecer en 1, no pasa contenido. También se debe especificar un nivel de protección de salida de vídeo digital sin comprimir de un valor mayor o igual que 271. |
En la tabla siguiente se describe la implementación de DRM de PlayReady para Windows 10 de restricciones explícitas de protección de salida de vídeo analógico.
Escenario | GUID | Si... | En ese caso... | |
---|---|---|---|---|
Monitor de equipo analógico | D783A191-E083-4BAF-B2DA-E69F910B3772 | La salida conectada es: VGA, analógico DVI–, etcetera. | SWDRM: el equipo restringirá la resolución efectiva 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 efectiva a 520 000 epx por fotograma y pasará contenido | HWDRM: no pasa contenido |
Salidas de TV analógicas | 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 | La OPL de TV analógica es menor que 151 | CGMS-A debe estar comprometido | |
225CD36F-F132-49EF-BA8C-C91EA28E4369 | Analog TV OPL es menor que 101 y la licencia no contiene 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 | Se debe intentar la interacción de CGMS-A, pero el contenido puede reproducirse independientemente del resultado. | ||
Control automático de ganancia y franja de colores | C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA | Pasar contenido con resolución menor o igual que 520 000 px a salida de TV analógica | Establece AGC solo para vídeo de componente y modo PAL cuando la resolución es inferior a 520 000 px y establece la información de franjas de color y AGC para NTSC cuando la resolución es inferior a 520 000 px, según la tabla 3.5.7.3. en Reglas de cumplimiento | |
Salida solo digital | 760AE755-682A-41E0-B1B3-DCDF836A7306 | La salida conectada es analógica | No pasa contenido |
Nota:
Cuando se usa un dongle de adaptador como "Mini DisplayPort a VGA" para la reproducción, Windows 10 ve la salida como salida de vídeo digital y no puede aplicar directivas de vídeo analógico.
En la tabla siguiente 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 la salida no se puede determinar razonablemente o no se puede establecer OPM con el controlador de gráficos | SWDRM: pasa contenido | HWDRM: no pasa contenido |
Salida desconocida con constricción | B621D91F-EDCC-4035-8D4B-DC71760D43E9 | Si la salida no se puede determinar razonablemente o no se puede establecer OPM con el controlador de gráficos | SWDRM: el equipo restringirá la resolución efectiva 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 por PlayReady, es necesario instalar el siguiente software en el sistema:
- Windows 10.
- Si estás compilando cualquiera de los ejemplos de DRM de PlayReady para aplicaciones para UWP, debes usar Microsoft Visual Studio 2015 o posterior para compilar los ejemplos. Todavía puedes usar Microsoft Visual Studio 2013 para compilar cualquiera de los ejemplos de DRM de PlayReady para aplicaciones de la Tienda Windows 8.1.
Guía de migración de aplicaciones para UWP de PlayReady
En esta sección se incluye información sobre cómo migrar las aplicaciones existentes de la Tienda De Windows 8.x a Windows 10.
El espacio de nombres para aplicaciones para UWP de PlayReady en Windows 10 se cambió de Microsoft.Media.PlayReadyClient a Windows.Media.Protection.PlayReady. Esto significa que tendrá que buscar y reemplazar el espacio de nombres antiguo por el 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 windows.winmd como parte del SDK de Windows de TH. Para UWP, se hace referencia a ella en windows.foundation.univeralappcontract.winmd.
Para reproducir contenido de alta definición (HD) protegido por PlayReady (1080p) y contenido de ultra alta definición (UHD), deberá 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 se admiten en DRM de hardware. Para obtener información sobre cómo deshabilitar DRM de hardware y habilitar DRM de software, consulte Invalidar DRM de hardware.
Con respecto al administrador de protección de medios, asegúrese de que el código tiene la siguiente configuración si aún no lo hace:
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 adquirir licencias no persistentes de forma proactiva antes de que comience la reproducción.
En versiones anteriores de DRM de PlayReady, las licencias no persistentes solo se podían adquirir de forma reactiva durante la reproducción. En esta versión, puede adquirir licencias no persistentes de forma proactiva antes de que comience la reproducción.
Cree de forma proactiva una sesión de reproducción en la que 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 );
Empate esa sesión de reproducción a la clase de adquisición de licencias. Por ejemplo:
var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet(); licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer; var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
Cree una solicitud de servicio de licencia. Por ejemplo:
var laSR = licenseSession.CreateLAServiceRequest();
Realice la adquisición de licencias mediante la solicitud de servicio creada a partir del paso 3. La licencia se almacenará en la sesión de reproducción.
Empate la sesión de reproducción al origen multimedia para su 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 valores de cadena admitidos, consulte la página de referencia de 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;
}
Adición de una parada segura
En esta sección se describe cómo agregar una parada segura a la aplicación para UWP.
La detención segura proporciona los medios para que un dispositivo PlayReady aserte con confianza a un servicio de streaming multimedia que la reproducción multimedia se ha detenido para cualquier fragmento de contenido determinado. Esta funcionalidad garantiza que los servicios de streaming multimedia proporcionan una aplicación precisa y la generación de informes de limitaciones de uso en diferentes dispositivos para una cuenta determinada.
Hay dos escenarios principales para enviar un desafío de detención seguro:
- Cuando se detiene la presentación multimedia porque se alcanzó el final del contenido o cuando el usuario detuvo la presentación multimedia en algún lugar del medio.
- Cuando la sesión anterior finaliza inesperadamente (por ejemplo, debido a un bloqueo del sistema o de la aplicación). La aplicación tendrá que consultar, ya sea durante el inicio o el apagado, para las sesiones de detención seguras pendientes y enviar desafíos independientes de cualquier otra reproducción 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:
- Tenga su contacto en el permiso de solicitud de Microsoft.
- Solicite autorización enviando su cuenta del Centro de partners y el nombre de la compañía a pronxbox@microsoft.com.
Una vez que reciba la autorización, deberá agregar un elemento adicional <DeviceCapability>
al manifiesto de la aplicación. Tendrá que agregar esto manualmente porque actualmente no hay ninguna configuración disponible en el Diseñador de manifiestos de aplicaciones. Siga estos pasos para configurarlo:
Con el proyecto abierto en Visual Studio, abra el Explorador de soluciones y haga clic con el botón derecho en Package.appxmanifest.
Seleccione Abrir con..., elija Editor XML (texto) y haga clic en Aceptar.
Entre las
<Capabilities>
etiquetas, agregue lo siguiente<DeviceCapability>
:<DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
Guarde el archivo.
Por último, hay una última consideración al usar PlayReady en Xbox One: en los kits de desarrollo, hay un límite sl150 (es decir, no pueden reproducir contenido SL2000 o SL3000). Los dispositivos comerciales pueden reproducir contenido con niveles de seguridad más altos, pero para probar la aplicación en un kit de desarrollo, tendrás que usar contenido sl150. Puede probar este contenido de una de las maneras siguientes:
- Use contenido de prueba mantenido que requiera licencias sl150.
- Implemente lógica para que solo determinadas cuentas de prueba autenticadas puedan adquirir licencias SL150 para cierto contenido.
Use el enfoque que tenga más sentido para su empresa y su producto.