Gestion des droits numériques PlayReady
Cette rubrique explique comment ajouter du contenu multimédia protégé par PlayReady à votre application plateforme Windows universelle (UWP).
PlayReady DRM permet aux développeurs de créer des applications UWP capables de fournir du contenu PlayReady à l’utilisateur tout en appliquant les règles d’accès définies par le fournisseur de contenu. Cette section décrit les modifications apportées à Microsoft PlayReady DRM pour Windows 10 et comment modifier votre application UWP PlayReady pour prendre en charge les modifications apportées de la version précédente de Windows 8.1 à la version windows 10.
Sujet | Description |
---|---|
Gestion des droits numériques matériels | Cette rubrique fournit une vue d’ensemble de l’ajout de la gestion des droits numériques en fonction du matériel PlayReady à votre application UWP. |
Streaming adaptatif avec PlayReady | Cet article décrit comment ajouter le streaming adaptatif de contenu multimédia avec la protection de contenu Microsoft PlayReady à une application UWP. Cette fonctionnalité prend actuellement en charge la lecture de contenus de diffusion en continu en direct Http (HLS) et de diffusion en continu dynamique sur HTTP (DASH). |
Nouveautés de PlayReady DRM
La liste suivante décrit les nouvelles fonctionnalités et les modifications apportées à PlayReady DRM pour Windows 10.
Ajout de la gestion des droits numériques numériques matériels (HWDRM).
La prise en charge de la protection de contenu basée sur le matériel permet la lecture sécurisée du contenu haute définition (HD) et ultra-haute définition (UDP) sur plusieurs plateformes d’appareils. Matériel de clé (y compris les clés privées, les clés de contenu et tout autre matériel de clé utilisé pour dériver ou déverrouiller ces clés), et les exemples vidéo compressés et non compressés déchiffrés sont protégés en tirant parti de la sécurité matérielle. Lorsque la gestion des droits numériques matériels est utilisée, ni l’enabler inconnu (lire à inconnu/ jouer à inconnu avec des pannes) a la signification que le pipeline HWDRM connaît toujours la sortie utilisée. Pour plus d’informations, consultez gestion des droits numériques matériels.
PlayReady n’est plus un composant d’infrastructure AppX, mais il s’agit plutôt d’un composant de système d’exploitation intégré. L’espace de noms a été remplacé de Microsoft.Media.PlayReadyClient à Windows.Media.Protection.PlayReady.
Les en-têtes suivants définissant les codes d’erreur PlayReady font désormais partie du Kit de développement logiciel Windows (SDK) : Windows.Media.Protection.PlayReadyErrors.h et Windows.Media.Protection.PlayReadyResults.h.
Fournit une acquisition proactive de licences non persistantes.
Les versions précédentes de PlayReady DRM ne prenaient pas en charge l’acquisition proactive de licences non persistantes. Cette fonctionnalité a été ajoutée à cette version. Cela peut réduire la durée de la première image. Pour plus d’informations, consultez Acquérir de manière proactive une licence non persistante avant la lecture.
Fournit l’acquisition de plusieurs licences dans un message.
Permet à l’application cliente d’acquérir plusieurs licences non persistantes dans un message d’acquisition de licence. Cela peut réduire la durée de la première image en acquérant des licences pour plusieurs éléments de contenu pendant que l’utilisateur navigue toujours dans votre bibliothèque de contenu ; cela empêche un délai d’acquisition de licence lorsque l’utilisateur sélectionne le contenu à lire. En outre, il permet de chiffrer des flux audio et vidéo pour séparer les clés en activant un en-tête de contenu qui inclut plusieurs identificateurs de clé (KID) ; cela permet d’acquérir toutes les licences pour tous les flux au sein d’un fichier de contenu au lieu d’utiliser une logique personnalisée et plusieurs demandes d’acquisition de licences pour obtenir le même résultat.
Ajout de la prise en charge de l’expiration en temps réel ou d’une licence de durée limitée (LDL).
Permet de définir l’expiration en temps réel sur les licences et de passer sans problème d’une licence arrivant à expiration vers une autre licence (valide) au milieu de la lecture. Lorsqu’elle est combinée avec l’acquisition de plusieurs licences dans un message, cela permet à une application d’acquérir plusieurs LDL de manière asynchrone alors que l’utilisateur navigue toujours dans la bibliothèque de contenu et n’acquiert qu’une licence de durée plus longue une fois que l’utilisateur a sélectionné le contenu à lire. La lecture démarre ensuite plus rapidement (car une licence est déjà disponible) et, étant donné que l’application aura acquis une licence de durée plus longue au moment de l’expiration du LDL, continuez sans interruption la lecture jusqu’à la fin du contenu.
Ajout de chaînes de licences non persistantes.
Ajout de la prise en charge des restrictions temporelles (notamment l’expiration, l’expiration après la première lecture et l’expiration en temps réel) sur les licences non persistantes.
Ajout de la prise en charge de la stratégie HDCP Type 1 (version 2.2 sur Windows 10).
Pour plus d’informations, consultez Les éléments à prendre en compte .
Miracast est désormais implicite en tant que sortie.
Ajout d’un arrêt sécurisé.
L’arrêt sécurisé permet à un appareil PlayReady d’affirmer en toute confiance auprès d’un service de diffusion en continu multimédia que la lecture multimédia s’est arrêtée pour n’importe quel élément de contenu donné. Cette fonctionnalité garantit que vos services de diffusion en continu multimédia fournissent une application précise et un signalement précis des limitations d’utilisation sur différents appareils pour un compte donné.
Ajout de la séparation des licences audio et vidéo.
Les pistes distinctes empêchent le décodage de la vidéo en tant qu’audio ; activation d’une protection de contenu plus robuste. Les normes émergentes nécessitent des clés distinctes pour les pistes audio et visuelles.
Ajout de MaxResDecode.
Cette fonctionnalité a été ajoutée pour limiter la lecture du contenu à une résolution maximale, même en possession d’une clé plus compatible (mais pas d’une licence). Il prend en charge les cas où plusieurs tailles de flux sont encodées avec une seule clé.
Les nouvelles interfaces, classes et énumérations suivantes ont été ajoutées à playReady DRM :
- Interface IPlayReadyLicenseAcquisitionServiceRequest
- Interface IPlayReadyLicenseSession
- Interface IPlayReadySecureStopServiceRequest
- PlayReadyLicenseSession , classe
- Classe PlayReadySecureStopIterable
- Classe PlayReadySecureStopIterator
- Énumérateur PlayReadyHardwareDRMFeatures
Un nouvel exemple a été créé pour montrer comment utiliser les nouvelles fonctionnalités de la gestion des droits numériques PlayReady. L’exemple peut être téléchargé à partir du navigateur Exemples de code.
Points importants à prendre en compte
- PlayReady DRM prend désormais en charge HDCP Type 1 (pris en charge dans HDCP version 2.1 ou ultérieure). PlayReady contient une stratégie de restriction de type HDCP dans la licence pour que l’appareil s’applique. Sur Windows 10, cette stratégie applique que HDCP 2.2 ou version ultérieure est engagé. Cette fonctionnalité peut être activée dans votre licence sdk PlayReady Server v3.0 (le serveur contrôle cette stratégie dans la licence à l’aide du GUID de restriction de type HDCP). Pour plus d’informations, consultez les règles de conformité et de robustesse PlayReady.
- Windows Media Video (également appelé VC-1) n’est pas pris en charge dans la gestion des droits numériques matériels (voir Remplacer la gestion des droits numériques matériels).
- PlayReady DRM prend désormais en charge la norme de compression vidéo HEVC /H.265 (High Efficiency Video Coding). Pour prendre en charge HEVC, votre application doit utiliser le contenu CENC (Common Encryption Scheme) version 2, qui inclut la sortie des en-têtes de tranche du contenu dans l’option Clear. Pour plus d’informations, reportez-vous à la technologie d’information ISO/IEC 23001-7 -- Technologies des systèmes MPEG -- Partie 7 : Chiffrement commun dans les fichiers de format de fichier multimédia de base ISO (norme ISO/IEC 23001-7:2015 ou version ultérieure).) pour plus d’informations. Microsoft recommande également d’utiliser CENC version 2 pour tout le contenu HWDRM. En outre, certaines DRM matérielles prennent en charge HEVC et certaines ne le prennent pas en charge (voir Remplacer la gestion des droits numériques matériels).
- Pour tirer parti de certaines nouvelles fonctionnalités de PlayReady 3.0 (notamment, mais pas limité à SL3000 pour les clients matériels, acquisition de plusieurs licences non persistantes dans un message d’acquisition de licence et restrictions temporelles sur les licences non persistantes), le serveur PlayReady doit être la version du Kit de développement logiciel Microsoft PlayReady Server v3.0.2769 Version ou ultérieure.
- Selon la stratégie de protection de sortie spécifiée dans la licence de contenu, la lecture multimédia peut échouer pour les utilisateurs finaux si leur sortie connectée ne prend pas en charge ces exigences. Le tableau suivant répertorie l’ensemble d’erreurs courantes qui se produisent en conséquence. Pour plus d’informations, consultez les règles de conformité et de robustesse PlayReady.
Error | Valeur | Description |
---|---|---|
ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP | 0xC0262513 | La stratégie de protection de sortie de la licence exige que le moniteur engage HDCP, mais HDCP n’a pas pu être engagé. |
MF_E_POLICY_UNSUPPORTED | 0xC00D7159 | La stratégie de protection de sortie de la licence nécessite que le moniteur engage HDCP Type 1, mais hdCP Type 1 n’a pas pu être engagé. |
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET | 0x8004CD22 | Ce code d’erreur se produit uniquement lors de l’exécution sous gestion des droits numériques matériels. La stratégie de protection de sortie de la licence exige que le moniteur engage HDCP ou réduise la résolution effective du contenu, mais HDCP n’a pas pu être engagé et la résolution efficace du contenu n’a pas pu être réduite, car la gestion des droits numériques matériels ne prend pas en charge la réduction de la résolution du contenu. Sous drm logicielle, le contenu est lu. Consultez considérations relatives à l’utilisation de la gestion des droits numériques matériels. |
ERROR_GRAPHICS_OPM_NOT_SUPPORTED | 0xc0262500 | Le pilote graphique ne prend pas en charge la protection de sortie. Par exemple, le moniteur est connecté par le biais d’UNE INTERFACE GRAPHIQUE ou d’un pilote graphique approprié pour la sortie numérique n’est pas installé. Dans ce dernier cas, le pilote classique installé est l’adaptateur d’affichage Microsoft Basic et l’installation d’un pilote graphique approprié résout le problème. |
Protection de sortie
La section suivante décrit le comportement lors de l’utilisation de la gestion des droits numériques PlayReady pour Windows 10 avec des stratégies de protection de sortie dans une licence PlayReady.
PlayReady DRM prend en charge les niveaux de protection des sorties contenus dans la spécification des droits multimédias extensibles Microsoft PlayReady. Ce document se trouve dans le pack de documentation fourni avec des produits sous licence PlayReady.
Remarque
Les valeurs autorisées pour les niveaux de protection de sortie qui peuvent être définis par un serveur de licences sont régies par les règles de conformité PlayReady.
PlayReady DRM autorise la lecture de contenu avec des stratégies de protection de sortie uniquement sur les connecteurs de sortie spécifiés dans les règles de conformité PlayReady. Pour plus d’informations sur les termes du connecteur de sortie spécifiés dans les règles de conformité PlayReady, consultez Conditions définies pour la conformité playReady et les règles de robustesse.
Cette section se concentre sur les scénarios de protection des sorties avec playReady DRM pour Windows 10 et PlayReady Hardware DRM pour Windows 10, qui est également disponible sur certains clients Windows. Avec PlayReady HWDRM, toutes les protections de sortie sont appliquées à partir de l’implémentation windows TEE (voir Gestion des droits numériques matériels). Par conséquent, certains comportements diffèrent de l’utilisation de PlayReady SWDRM (DRM logicielle) :
- Prise en charge du niveau de protection de sortie (OPL) pour la vidéo numérique non compressée 270 : PlayReady HWDRM pour Windows 10 ne prend pas en charge la résolution de panne et applique cette protection HDCP (Protection de contenu numérique à bande passante élevée) est engagée. Il est recommandé que le contenu haute définition pour HWDRM ait une valeur OPL supérieure à 270 (bien qu’il ne soit pas obligatoire). En outre, vous devez définir la restriction de type HDCP dans la licence (HDCP version 2.2 ou ultérieure).
- Contrairement à SWDRM, avec HWDRM, les protections de sortie sont appliquées à tous les moniteurs en fonction du moniteur le moins compatible. Par exemple, si l’utilisateur dispose de deux moniteurs connectés où l’un prend en charge HDCP et l’autre ne le fait pas, la lecture échoue si la licence requiert HDCP même si le contenu est affiché uniquement sur le moniteur qui prend en charge HDCP. Dans SWDRM, le contenu est lu tant qu’il n’est rendu que sur le moniteur qui prend en charge HDCP.
- HWDRM n’est pas garanti être utilisé par le client et sécurisé, sauf si les conditions suivantes sont remplies par les clés de contenu et les licences :
- La licence utilisée pour la clé de contenu vidéo doit avoir un niveau de sécurité minimal de 3 000.
- L’audio doit être chiffré sur une clé de contenu différente de la vidéo, et la licence utilisée pour l’audio doit avoir un niveau de sécurité minimal de 2000. Vous pouvez également laisser l’audio dans l’clair.
- Tous les scénarios SWDRM nécessitent que le niveau de sécurité minimal de la licence PlayReady utilisée pour la clé de contenu audio et/ou vidéo soit inférieur ou égal à 2000.
Niveaux de protection de sortie
Le tableau suivant présente les mappages entre les différentes licences OPL dans la licence PlayReady et la façon dont playReady DRM pour Windows 10 les applique.
Vidéo
OPL | Vidéo numérique compressée | Vidéo numérique non compressée | Télévision analogique | |
---|---|---|---|---|
Tout | HDMI, DVI, DisplayPort, MHL | Composant, Composite | ||
100 | N/A\* | Transmet le contenu | Transmet le contenu | |
150 | N/A\* | Transmet le contenu lorsque CGMS-A CopyNever est engagé ou si CGMS-A ne peut pas être engagé | ||
200 | Transmet le contenu lorsque CGMS-A CopyNever est engagé | |||
250 | Tentatives d’engagement de HDCP, mais transmet le contenu quel que soit le résultat | N/A\* | ||
270 | SWDRM : tente d’engager HDCP. Si HDCP ne parvient pas à s’engager, le PC limite la résolution effective à 520 000 pixels par image et transmet le contenu | HWDRM : Transmet le contenu avec HDCP. Si HDCP ne parvient pas à s’engager, la lecture sur les ports HDMI/DVI est bloquée | ||
300 |
**Lorsque la restriction de type HDCP n’est PAS définie :** transmet le contenu avec HDCP. Si HDCP ne parvient pas à s’engager, la lecture sur les ports HDMI/DVI est bloquée. **Lorsque la restriction de type HDCP est définie** : transmet le contenu avec hdCP 2.2 et le type de flux de contenu défini sur 1. Si HDCP ne parvient pas à engager ou si le type de flux de contenu ne peut pas être défini sur 1, la lecture sur les ports HDMI/DVI est bloquée. |
|||
400 | Windows 10 ne transmet jamais de contenu vidéo numérique compressé aux sorties, quelle que soit la valeur OPL suivante. Pour plus d’informations sur le contenu vidéo numérique compressé, consultez les règles de conformité pour les produits PlayReady. | N/A\* | ||
500 |
* Toutes les valeurs des niveaux de protection de sortie ne peuvent pas être définies par un serveur de licences. Pour plus d’informations, consultez Règles de conformité PlayReady.
Audio
OPL | Audio numérique compressé | Audio numérique non compressé | Audio analogique ou USB |
---|---|---|---|
HDMI, DisplayPort, MHL | HDMI, DisplayPort, MHL | Tout | |
100 | Transmet le contenu | Transmet le contenu | Transmet le contenu |
150 | Ne passe pas de contenu | ||
200 | |||
250 | Transmet le contenu lorsque HDCP est engagé sur HDMI, DisplayPort ou MHL, ou lorsque SCMS est engagé et défini sur CopyNever | ||
300 | Transmet le contenu lorsque HDCP est engagé sur HDMI, DisplayPort ou MHL |
Miracast
PlayReady DRM vous permet de lire le contenu sur la sortie Miracast dès que HDCP 2.0 ou version ultérieure est engagé. Toutefois, Sur Windows 10, Miracast est considéré comme une sortie numérique . Pour plus d’informations sur les scénarios Miracast, consultez les règles de conformité PlayReady. Le tableau suivant présente les mappages entre les différentes licences OPL dans la licence PlayReady et la façon dont playReady DRM les applique sur les sorties Miracast.
OPL | Audio numérique compressé | Audio numérique non compressé | Vidéo numérique compressée | Vidéo numérique non compressée |
---|---|---|---|---|
100 | Transmet le contenu lorsque HDCP 2.0 ou version ultérieure est engagé. S’il ne parvient pas à s’engager, il ne transmet pas de contenu | Transmet le contenu lorsque HDCP 2.0 ou version ultérieure est engagé. S’il ne parvient pas à s’engager, il ne transmet pas de contenu | N/A\* | Transmet le contenu lorsque HDCP 2.0 ou version ultérieure est engagé. S’il ne parvient pas à s’engager, il ne transmet pas de contenu |
150 | Ne passe pas de contenu | N/A\* | ||
200 | ||||
250 | Transmet le contenu lorsque HDCP 2.0 ou version ultérieure est engagé. S’il ne parvient pas à s’engager, il ne transmet pas de contenu | |||
270 | N/A\* | |||
300 | Transmet le contenu lorsque HDCP 2.0 ou version ultérieure est engagé. S’il ne parvient pas à s’engager, il ne transmet pas de contenu | Ne passe pas de contenu |
**Lorsque la restriction de type HDCP n’est PAS définie :** Transmet le contenu lorsque HDCP 2.0 ou version ultérieure est engagé. S’il ne parvient pas à s’engager, il ne transmet pas de contenu. **Lorsque la restriction de type HDCP est définie :** Transmet le contenu avec hdCP 2.2 et le type de flux de contenu défini sur 1. Si HDCP ne parvient pas à engager ou si le type de flux de contenu ne peut pas être défini sur 1, il ne transmet pas de contenu. |
|
400 | N/A\* | Windows 10 ne transmet jamais de contenu vidéo numérique compressé aux sorties, quelle que soit la valeur OPL suivante. Pour plus d’informations sur le contenu vidéo numérique compressé, consultez les règles de conformité pour les produits PlayReady. | N/A\* | |
500 |
* Toutes les valeurs des niveaux de protection de sortie ne peuvent pas être définies par un serveur de licences. Pour plus d’informations, consultez Règles de conformité PlayReady.
Restrictions de sortie explicites supplémentaires
Le tableau suivant décrit l’implémentation playReady DRM pour Windows 10 des restrictions de protection de sortie vidéo numérique explicites.
Scénario | GUID | Si... | Alors… |
---|---|---|---|
Taille de décodage de résolution effective maximale | 9645E831-E01D-4FFF-8342-0A720E3E028F | La sortie connectée est : sortie vidéo numérique, Miracast, HDMI, DVI, etc. |
Transmet le contenu lorsqu’il est contraint à :
|
Restriction de type HDCP | ABB2C6F1-E663-4625-A945-972D17B231E7 | La sortie connectée est : sortie vidéo numérique, Miracast, HDMI, DVI, etc. | Transmet le contenu avec HDCP 2.2 et le type de flux de contenu défini sur 1. Si HDCP 2.2 ne parvient pas à s’engager ou si le type de flux de contenu ne peut pas être défini sur 1, il ne transmet pas de contenu. Le niveau de protection de sortie vidéo numérique non compressé d’une valeur supérieure ou égale à 271 doit également être spécifié |
Le tableau suivant décrit l’implémentation playReady DRM pour Windows 10 des restrictions de protection de sortie vidéo analogique explicite.
Scénario | GUID | Si... | Alors… | |
---|---|---|---|---|
Moniteur d’ordinateur analogique | D783A191-E083-4BAF-B2DA-E69F910B3772 | La sortie connectée est : VGA, analogique DVI–, etc. | SWDRM : PC limite la résolution effective à 520 000 epx par frame et transmet du contenu | HWDRM : Ne transmet pas de contenu |
Composant analogique | 811C5110-46C8-4C6E-8163-C0482A15D47E | La sortie connectée est : composant | SWDRM : PC limite la résolution effective à 520 000 epx par frame et transmet du contenu | HWDRM : Ne transmet pas de contenu |
Sorties de télévision analogique | 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 | L’OPL tv analogique est inférieure à 151 | CGMS-A doit être engagé | |
225CD36F-F132-49EF-BA8C-C91EA28E4369 | L’OPL tv analogique est inférieure à 101 et la licence ne contient pas 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 | L’engagement CGMS-A doit être tenté, mais le contenu peut être lu indépendamment du résultat | ||
Contrôle de gain automatique et bande de couleur | C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA | Passage de contenu avec résolution inférieure ou égale à 520 000 px à la sortie de télévision analogique | Définit AGC uniquement pour la vidéo de composant et le mode PAL lorsque la résolution est inférieure à 520 000 px et définit les informations de bande de couleur et AGC pour NTSC lorsque la résolution est inférieure à 520 000 px, selon le tableau 3.5.7.3. dans les règles de conformité | |
Sortie numérique uniquement | 760AE755-682A-41E0-B1B3-DCDF836A7306 | La sortie connectée est analogique | Ne transmet pas de contenu |
Remarque
Lors de l’utilisation d’un bouton bascule d’adaptateur tel que « Mini DisplayPort to VGA » pour la lecture, Windows 10 voit la sortie en tant que sortie vidéo numérique et ne peut pas appliquer de stratégies vidéo analogiques.
Le tableau suivant décrit l’implémentation playReady DRM pour Windows 10 qui permet de jouer dans d’autres circonstances.
Scénario | GUID | Si... | Alors… | |
---|---|---|---|---|
Sortie inconnue | 786627D8-C2A6-44BE-8F88-08AE255B01A7 | Si la sortie ne peut pas raisonnablement être déterminée, ou OPM ne peut pas être établie avec le pilote graphique | SWDRM : Transmet le contenu | HWDRM : Ne transmet pas de contenu |
Sortie inconnue avec constriction | B621D91F-EDCC-4035-8D4B-DC71760D43E9 | Si la sortie ne peut pas raisonnablement être déterminée, ou OPM ne peut pas être établie avec le pilote graphique | SWDRM : PC limite la résolution effective à 520 000 epx par frame et transmet du contenu | HWDRM : Ne transmet pas de contenu |
Prérequis
Avant de commencer à créer votre application UWP protégée par PlayReady, les logiciels suivants doivent être installés sur votre système :
- Windows 10.
- Si vous compilez l’un des exemples pour les applications PlayReady DRM pour UWP, vous devez utiliser Microsoft Visual Studio 2015 ou version ultérieure pour compiler les exemples. Vous pouvez toujours utiliser Microsoft Visual Studio 2013 pour compiler l’un des exemples de gestion des droits numériques PlayReady pour les applications du Windows 8.1 Store.
Guide de migration des applications UWP PlayReady
Cette section inclut des informations sur la migration de vos applications PlayReady Windows 8.x Store existantes vers Windows 10.
L’espace de noms pour les applications UWP PlayReady sur Windows 10 a été remplacé de Microsoft.Media.PlayReadyClient à Windows.Media.Protection.PlayReady. Cela signifie que vous devez rechercher et remplacer l’ancien espace de noms par le nouvel espace de noms dans votre code. Vous référencerez toujours un fichier winmd. Il fait partie de windows.media.winmd sur le système d’exploitation Windows 10. Il se trouve dans windows.winmd dans le cadre du Kit de développement logiciel (SDK) Windows de l’TH. Pour UWP, il est référencé dans windows.foundation.univeralappcontract.winmd.
Pour lire le contenu haute définition (HD) protégé par PlayReady (HD) (1080p) et le contenu ultra-haute définition (UDP), vous devez implémenter la gestion des droits numériques (DRM) du matériel PlayReady. Pour plus d’informations sur la façon d’implémenter la gestion des droits numériques matériels PlayReady, consultez gestion des droits numériques relatifs au matériel.
Certains contenus ne sont pas pris en charge dans la gestion des droits numériques matériels. Pour plus d’informations sur la désactivation de la gestion des droits numériques matériels et l’activation de la gestion des droits numériques logiciels, consultez Remplacer la gestion des droits numériques matériels.
En ce qui concerne le gestionnaire de protection multimédia, vérifiez que votre code a les paramètres suivants s’il ne l’est pas déjà :
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}";
Acquérir de manière proactive une licence non persistante avant la lecture
Cette section explique comment acquérir des licences non persistantes de manière proactive avant le début de la lecture.
Dans les versions précédentes de la gestion des droits numériques PlayReady, les licences non persistantes ne peuvent être acquises de manière réactive que lors de la lecture. Dans cette version, vous pouvez acquérir des licences non persistantes de manière proactive avant le début de la lecture.
Créez de manière proactive une session de lecture où la licence non persistante peut être stockée. Par exemple :
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 );
Liez cette session de lecture à la classe d’acquisition de licence. Par exemple :
var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet(); licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer; var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
Créez une demande de service de licence. Par exemple :
var laSR = licenseSession.CreateLAServiceRequest();
Effectuez l’acquisition de licence à l’aide de la demande de service créée à l’étape 3. La licence sera stockée dans la session de lecture.
Liez la session de lecture à la source multimédia pour la lecture. Par exemple :
licenseSession.configureMediaProtectionManager( mediaProtectionManager ); videoPlayer.msSetMediaProtectionManager( mediaProtectionManager );
Rechercher des fonctionnalités de protection
À compter de Windows 10, version 1703, vous pouvez interroger des fonctionnalités DRM HW, telles que le décodage des codecs, la résolution et les protections de sortie (HDCP). Les requêtes sont effectuées avec la méthode IsTypeSupported qui prend une chaîne représentant les fonctionnalités pour lesquelles la prise en charge est interrogée et une chaîne spécifiant le système de clés auquel la requête s’applique. Pour obtenir la liste des valeurs de chaîne prises en charge, consultez la page de référence de l’API pour IsTypeSupported. L’exemple de code suivant illustre l’utilisation de cette méthode.
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;
}
Ajouter un arrêt sécurisé
Cette section explique comment ajouter un arrêt sécurisé à votre application UWP.
L’arrêt sécurisé permet à un appareil PlayReady d’affirmer en toute confiance auprès d’un service de diffusion en continu multimédia que la lecture multimédia s’est arrêtée pour n’importe quel élément de contenu donné. Cette fonctionnalité garantit que vos services de diffusion en continu multimédia fournissent une application précise et un signalement précis des limitations d’utilisation sur différents appareils pour un compte donné.
Il existe deux scénarios principaux pour l’envoi d’un défi d’arrêt sécurisé :
- Lorsque la présentation multimédia s’arrête en raison de la fin du contenu a été atteinte ou lorsque l’utilisateur a arrêté la présentation multimédia quelque part au milieu.
- Lorsque la session précédente se termine de façon inattendue (par exemple, en raison d’un blocage du système ou de l’application). L’application doit interroger, au démarrage ou à l’arrêt, les sessions d’arrêt sécurisées en attente et envoyer des défis distincts de toute autre lecture multimédia.
Pour obtenir un exemple d’implémentation de l’arrêt sécurisé, consultez le fichier securestop.cs dans l’exemple PlayReady situé dans l’exemple de navigateur de code.
Utiliser playReady DRM sur Xbox One
Pour utiliser playReady DRM dans une application UWP sur Xbox One, vous devez d’abord inscrire votre compte Espace partenaires que vous utilisez pour publier l’application pour l’autorisation d’utiliser PlayReady. Vous pouvez le faire de deux façons :
- Demandez l’autorisation de votre contact à Microsoft.
- Appliquez l’autorisation en envoyant votre compte espace partenaires et le nom de votre entreprise à pronxbox@microsoft.com.
Une fois que vous recevez l’autorisation, vous devez ajouter un complément <DeviceCapability>
au manifeste de l’application. Vous devrez ajouter cela manuellement, car il n’existe actuellement aucun paramètre disponible dans le Concepteur de manifeste d’application. Procédez comme suit pour le configurer :
Une fois le projet ouvert dans Visual Studio, ouvrez le Explorateur de solutions et cliquez avec le bouton droit sur Package.appxmanifest.
Sélectionnez Ouvrir avec..., choisissez l’éditeur XML (texte), puis cliquez sur OK.
Entre les
<Capabilities>
balises, ajoutez les éléments suivants<DeviceCapability>
:<DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
Enregistrez le fichier.
Enfin, il existe une dernière considération lors de l’utilisation de PlayReady sur Xbox One : sur les kits de développement, il existe une limite SL150 (autrement dit, ils ne peuvent pas lire le contenu SL2000 ou SL3000). Les appareils de vente au détail sont en mesure de lire du contenu avec des niveaux de sécurité supérieurs, mais pour tester votre application sur un kit de développement, vous devez utiliser du contenu SL150. Vous pouvez tester ce contenu de l’une des manières suivantes :
- Utilisez le contenu de test organisé qui nécessite des licences SL150.
- Implémentez la logique afin que seuls certains comptes de test authentifiés puissent acquérir des licences SL150 pour certains contenus.
Utilisez l’approche la plus pertinente pour votre entreprise et votre produit.