PlayReady DRM

Questo argomento descrive come aggiungere contenuto multimediale protetto da PlayReady all'app piattaforma UWP (Universal Windows Platform).

PlayReady DRM consente agli sviluppatori di creare app UWP in grado di fornire contenuto PlayReady all'utente applicando le regole di accesso definite dal provider di contenuti. Questa sezione descrive le modifiche apportate a Microsoft PlayReady DRM per Windows 10 e come modificare l'app UWP PlayReady per supportare le modifiche apportate dalla versione precedente per Windows 8.1 alla versione per Windows 10.

Argomento Descrizione
Hardware DRM Questo argomento offre una panoramica su come aggiungere DRM (Digital Rights Management) basato su PlayReady all'app UWP.
Flusso adattivo con PlayReady Questo articolo descrive come aggiungere lo streaming adattivo di contenuti multimediali con la protezione del contenuto PlayReady di Microsoft a un'app UWP (piattaforma UWP (Universal Windows Platform)). Questa funzionalità supporta attualmente la riproduzione di contenuti Http Live Streaming (HLS) e Dynamic Streaming su HTTP (DASH).

Novità in PlayReady DRM

L'elenco seguente descrive le nuove funzionalità e le modifiche apportate a PlayReady DRM per Windows 10.

  • Aggiunta di Hardware Digital Rights Management (HWDRM).

    Il supporto della protezione del contenuto basato su hardware consente la riproduzione sicura di contenuti HD (High Definition) e Ultra-High Definition (UHD) su più piattaforme per dispositivi. Il materiale della chiave (incluse chiavi private, chiavi simmetriche e qualsiasi altro materiale della chiave usato per derivare o sbloccare le chiavi) e gli esempi video compressi e non compressi decrittografati sono protetti sfruttando la sicurezza hardware. Quando viene usato DRM hardware, nessun abilitatore sconosciuto (play to unknown/play to unknown with downres) ha significato che la pipeline HWDRM conosce sempre l'output usato. Per altre informazioni, vedere Hardware DRM.

  • PlayReady non è più un componente framework appX, ma è invece un componente del sistema operativo integrato. Lo spazio dei nomi è stato modificato da Microsoft.Media.PlayReadyClient a Windows.Media.Protection.PlayReady.

  • Le intestazioni seguenti che definiscono i codici di errore PlayReady fanno ora parte di Windows Software Development Kit (SDK): Windows.Media.Protection.PlayReadyErrors.h e Windows.Media.Protection.PlayReadyResults.h.

  • Fornisce l'acquisizione proattiva di licenze non persistenti.

    Le versioni precedenti di PlayReady DRM non supportavano l'acquisizione proattiva di licenze non persistenti. Questa funzionalità è stata aggiunta a questa versione. Questo può ridurre il tempo per il primo fotogramma. Per altre informazioni, vedere Acquisire in modo proattivo una licenza non persistente prima della riproduzione.

  • Fornisce l'acquisizione di più licenze in un unico messaggio.

    Consente all'app client di acquisire più licenze non persistenti in un unico messaggio di acquisizione delle licenze. Questo può ridurre il tempo di primo fotogramma acquisendo licenze per più parti di contenuto mentre l'utente sta ancora esplorando la raccolta contenuto; ciò impedisce un ritardo per l'acquisizione delle licenze quando l'utente seleziona il contenuto da riprodurre. Inoltre, consente la crittografia dei flussi audio e video per separare le chiavi abilitando un'intestazione di contenuto che include più identificatori di chiave (KID); ciò consente a una singola acquisizione di licenze di acquisire tutte le licenze per tutti i flussi all'interno di un file di contenuto anziché dover usare la logica personalizzata e più richieste di acquisizione delle licenze per ottenere lo stesso risultato.

  • Aggiunta del supporto per la scadenza in tempo reale o licenza LDL (Limited Duration License).

    Consente di impostare la scadenza in tempo reale sulle licenze e di passare senza problemi da una licenza in scadenza a un'altra licenza (valida) durante la riproduzione. Se combinato con l'acquisizione di più licenze in un unico messaggio, ciò consente a un'app di acquisire diversi LDL in modo asincrono mentre l'utente sta ancora esplorando la raccolta contenuto e acquisisce solo una licenza di durata più lunga una volta che l'utente ha selezionato il contenuto per la riproduzione. La riproduzione inizierà quindi più rapidamente (perché una licenza è già disponibile) e, poiché l'app avrà acquisito una licenza di durata più lunga entro la scadenza dell'LDL, continuare senza interruzioni la riproduzione fino alla fine del contenuto.

  • Aggiunta di catene di licenze non persistenti.

  • Aggiunta del supporto per le limitazioni basate sul tempo (inclusa la scadenza, la scadenza dopo la prima riproduzione e la scadenza in tempo reale) per le licenze non persistenti.

  • Aggiunta del supporto dei criteri HDCP Tipo 1 (versione 2.2 in Windows 10).

    Per ulteriori informazioni, vedere Aspetti da considerare.

  • Miracast è ora implicito come output.

  • Aggiunta dell'arresto sicuro.

    L'arresto sicuro consente a un dispositivo PlayReady di affermare in modo sicuro a un servizio di streaming multimediale che la riproduzione multimediale è stata arrestata per una determinata parte di contenuto. Questa funzionalità garantisce che i servizi di streaming multimediale forniscano un'applicazione accurata e la segnalazione delle limitazioni di utilizzo su dispositivi diversi per un determinato account.

  • Aggiunta della separazione delle licenze audio e video.

    Le tracce separate impediscono la decodifica del video come audio; abilitazione di una protezione del contenuto più affidabile. Gli standard emergenti richiedono chiavi separate per le tracce audio e visive.

  • Aggiunta di MaxResDecode.

    Questa funzionalità è stata aggiunta per limitare la riproduzione del contenuto a una risoluzione massima anche se in possesso di una chiave più idonea (ma non di una licenza). Supporta i casi in cui più dimensioni del flusso vengono codificate con una singola chiave.

A PlayReady DRM sono state aggiunte le nuove interfacce, le classi e le enumerazioni seguenti:

È stato creato un nuovo esempio per illustrare come usare le nuove funzionalità di PlayReady DRM. L'esempio può essere scaricato dal browser code samples.

Alcune cose da considerare

  • DRM PlayReady supporta ora HDCP Tipo 1 (supportato in HDCP versione 2.1 o successiva). PlayReady include criteri di restrizione dei tipi HDCP nella licenza per il dispositivo da applicare. In Windows 10, questo criterio impone che HDCP 2.2 o versione successiva sia attivato. Questa funzionalità può essere abilitata nella licenza PlayReady Server v3.0 SDK (il server controlla questo criterio nella licenza usando il GUID di restrizione dei tipi HDCP). Per altre informazioni, vedere il documento relativo alle regole di conformità e resistenza di PlayReady .
  • Windows Media Video (noto anche come VC-1) non è supportato in DRM hardware (vedere Override hardware DRM).
  • La tecnologia DRM PlayReady supporta ora lo standard di compressione video High Efficiency Video Coding (HEVC /H.265). Per supportare HEVC, l'app deve usare il contenuto CENC (Common Encryption Scheme) versione 2, che include la cancellazione delle intestazioni delle sezioni del contenuto. Per altre informazioni, vedere ISO/IEC 23001-7 Information technology -- MPEG systems technologies -- Part 7: Common encryption in ISO base media file format files (Spec version ISO/IEC 23001-7:2015 or later). Microsoft consiglia anche di usare CENC versione 2 per tutto il contenuto HWDRM. Inoltre, alcuni DRM hardware supporteranno HEVC e alcuni non lo faranno (vedere Override hardware DRM).
  • Per sfruttare alcune nuove funzionalità di PlayReady 3.0 (tra cui, ad esempio, SL3000 per client basati su hardware, acquisire più licenze non persistenti in un messaggio di acquisizione delle licenze e restrizioni basate sul tempo per le licenze non persistenti), è necessario che il server PlayReady sia Microsoft PlayReady Server Software Development Kit Versione v3.0.2769 o successiva.
  • A seconda dei criteri di protezione dell'output specificati nella licenza del contenuto, la riproduzione multimediale potrebbe non riuscire per gli utenti finali se l'output connesso non supporta tali requisiti. La tabella seguente elenca il set di errori comuni che si verificano di conseguenza. Per altre informazioni, vedere il documento relativo alle regole di conformità e resistenza di PlayReady .
Error Valore Descrizione
ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP 0xC0262513 I criteri di protezione dell'output della licenza richiedono il monitoraggio per coinvolgere HDCP, ma HDCP non è stato in grado di essere coinvolto.
MF_E_POLICY_UNSUPPORTED 0xC00D7159 I criteri di protezione dell'output della licenza richiedono che il monitoraggio interagisca con HDCP Tipo 1, ma HDCP Tipo 1 non è stato in grado di essere coinvolto.
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET 0x8004CD22 Questo codice di errore si verifica solo quando viene eseguito con DRM hardware. I criteri di protezione dell'output della licenza richiedono il monitoraggio per coinvolgere HDCP o ridurre la risoluzione effettiva del contenuto, ma HDCP non è stato in grado di essere coinvolto e la risoluzione effettiva del contenuto non può essere ridotta perché la tecnologia DRM hardware non supporta la riduzione della risoluzione del contenuto. In DRM software, il contenuto viene riprodotto. See Considerazioni sull'uso di DRM hardware.
ERROR_GRAPHICS_OPM_NOT_SUPPORTED 0xc0262500 Il driver di grafica non supporta la protezione dell'output. Ad esempio, il monitor è connesso tramite VGA o un driver di grafica appropriato per l'output digitale non è installato. In quest'ultimo caso, il driver tipico installato è l'adattatore schermo Microsoft Basic e l'installazione di un driver di grafica appropriato risolverà il problema.

Protezione dell'uscita

La sezione seguente descrive il comportamento quando si usa la tecnologia DRM PlayReady per Windows 10 con i criteri di protezione dell'output in una licenza PlayReady.

PlayReady DRM supporta i livelli di protezione dell'output contenuti nella specifica dei diritti multimediali estendibili Di Microsoft PlayReady. Questo documento è disponibile nel pacchetto di documentazione fornito con prodotti con licenza PlayReady.

Nota

I valori consentiti per i livelli di protezione di output che possono essere impostati da un server di gestione licenze sono regolati dalle regole di conformità PlayReady.

PlayReady DRM consente la riproduzione di contenuto con criteri di protezione dell'output solo nei connettori di output, come specificato nelle regole di conformità PlayReady. Per altre informazioni sui termini del connettore di output specificati nelle regole di conformità PlayReady, vedere Condizioni definite per la conformità playReady e regole di affidabilità.

Questa sezione è incentrata sugli scenari di protezione dell'output con DRM PlayReady per Windows 10 e PlayReady Hardware DRM per Windows 10, disponibile anche in alcuni client Windows. Con PlayReady HWDRM, tutte le protezioni di output vengono applicate dall'implementazione di Windows T edizione Enterprise (vedi DRM hardware). Di conseguenza, alcuni comportamenti differiscono rispetto all'uso di SWDRM PlayReady (DRM software):

  • Supporto per il livello di protezione dell'output (OPL) per il video digitale decompresso 270: PlayReady HWDRM per Windows 10 non supporta la risoluzione inattiva e impone che HDCP (High-bandwidth Digital Content Protection) sia attivato. È consigliabile che il contenuto ad alta definizione per HWDRM abbia un OPL maggiore di 270 (anche se non è obbligatorio). È inoltre necessario impostare la restrizione del tipo HDCP nella licenza (HDCP versione 2.2 o successiva).
  • A differenza di SWDRM, con HWDRM, le protezioni di output vengono applicate a tutti i monitor in base al monitor meno idoneo. Ad esempio, se l'utente dispone di due monitor connessi in cui uno supporta HDCP e l'altro no, la riproduzione avrà esito negativo se la licenza richiede HDCP anche se il rendering del contenuto viene eseguito solo sul monitor che supporta HDCP. In SWDRM il contenuto verrà riprodotto finché viene eseguito il rendering solo sul monitor che supporta HDCP.
  • HWDRM non è garantito che venga usato dal client e sicuro, a meno che le condizioni seguenti non siano soddisfatte dalle chiavi e dalle licenze di contenuto:
    • La licenza usata per la chiave simmetrica video deve avere una proprietà livello di sicurezza minimo pari a 3000.
    • L'audio deve essere crittografato in una chiave simmetrica diversa rispetto al video e la licenza usata per l'audio deve avere una proprietà livello di sicurezza minimo 2000. In alternativa, l'audio potrebbe essere lasciato in chiaro.
  • Tutti gli scenari SWDRM richiedono che il livello di sicurezza minimo della licenza PlayReady usata per la chiave di contenuto audio e/o video sia inferiore o uguale a 2000.

Livelli di protezione dell'uscita

La tabella seguente illustra i mapping tra vari OPLs nella licenza PlayReady e il modo in cui PlayReady DRM per Windows 10 li applica.

Video

OPL Video digitale compresso Video digitale decompresso TV analogica
Any HDMI, DVI, DisplayPort, MHL Componente, composito
100 N/A\* Passa il contenuto Passa il contenuto
150 N/A\* Passa il contenuto quando CGMS-A CopyNever è in uso o se non è possibile usare CGMS-A
200 Passa il contenuto quando viene attivato CGMS-A CopyNever
250 Tenta di coinvolgere HDCP, ma passa il contenuto indipendentemente dal risultato N/A\*
270 SWDRM: tenta di coinvolgere HDCP. Se HDCP non riesce a interagire, il PC vincola la risoluzione effettiva a 520.000 pixel per fotogramma e passa il contenuto HWDRM: passa il contenuto con HDCP. Se HDCP non riesce a interagire, la riproduzione nelle porte HDMI/DVI viene bloccata
300

**Quando la limitazione del tipo HDCP NON è definita:** Passa il contenuto con HDCP. Se HDCP non riesce a interagire, la riproduzione nelle porte HDMI/DVI viene bloccata.

**Quando viene definita la restrizione del tipo HDCP**: passa il contenuto con HDCP 2.2 e il tipo di flusso di contenuto impostato su 1. Se HDCP non riesce a interagire o non è possibile impostare il tipo di flusso di contenuto su 1, la riproduzione su porte HDMI/DVI viene bloccata.

400 Windows 10 non passa mai contenuti video digitali compressi agli output, indipendentemente dal valore OPL successivo. Per altre informazioni sul contenuto video digitale compresso, vedere le regole di conformità per i prodotti PlayReady. N/A\*
500

* Non tutti i valori per i livelli di protezione di output possono essere impostati da un server di gestione licenze. Per altre informazioni, vedere le regole di conformità di PlayReady.

Audio

OPL Audio digitale compresso Audio digitale decompresso Audio analogico o USB
HDMI, DisplayPort, MHL HDMI, DisplayPort, MHL Any
100 Passa il contenuto Passa il contenuto Passa il contenuto
150 NON passa il contenuto
200
250 Passa il contenuto quando HDCP è attivato su HDMI, DisplayPort o MHL o quando SCMS è attivato e impostato su CopyNever
300 Passa il contenuto quando HDCP è impegnato su HDMI, DisplayPort o MHL

Miracast

La tecnologia DRM PlayReady consente di riprodurre contenuto sull'output Miracast non appena HDCP 2.0 o versione successiva è in uso. In Windows 10, tuttavia, Miracast è considerato un output digitale. Per altre informazioni sugli scenari Miracast, vedere le regole di conformità PlayReady. Nella tabella seguente vengono descritti i mapping tra vari OPL nella licenza PlayReady e il modo in cui PlayReady DRM li applica agli output Miracast.

OPL Audio digitale compresso Audio digitale decompresso Video digitale compresso Video digitale decompresso
100 Passa il contenuto quando viene usato HDCP 2.0 o versione successiva. Se non riesce a interagire, non passa il contenuto Passa il contenuto quando viene usato HDCP 2.0 o versione successiva. Se non riesce a interagire, non passa il contenuto N/A\* Passa il contenuto quando viene usato HDCP 2.0 o versione successiva. Se non riesce a interagire, non passa il contenuto
150 NON passa il contenuto N/A\*
200
250 Passa il contenuto quando viene usato HDCP 2.0 o versione successiva. Se non riesce a interagire, non passa il contenuto
270 N/A\*
300 Passa il contenuto quando viene usato HDCP 2.0 o versione successiva. Se non riesce a interagire, non passa il contenuto NON passa il contenuto

**Quando la limitazione del tipo HDCP NON è definita:** Passa il contenuto quando viene attivato HDCP 2.0 o versione successiva. Se non riesce a interagire, non passa il contenuto.

**Quando viene definita la restrizione del tipo HDCP:** passa il contenuto con HDCP 2.2 e il tipo di flusso di contenuto impostato su 1. Se HDCP non riesce a coinvolgere o non è possibile impostare il tipo di flusso di contenuto su 1, NON passa il contenuto.

400 N/A\* Windows 10 non passa mai contenuti video digitali compressi agli output, indipendentemente dal valore OPL successivo. Per altre informazioni sul contenuto video digitale compresso, vedere le regole di conformità per i prodotti PlayReady. N/A\*
500

* Non tutti i valori per i livelli di protezione di output possono essere impostati da un server di gestione licenze. Per altre informazioni, vedere le regole di conformità di PlayReady.

Restrizioni di output esplicite aggiuntive

La tabella seguente descrive l'implementazione drm PlayReady per Windows 10 di restrizioni esplicite per la protezione dell'output video digitale.

Scenario GUID If... Quindi...
Dimensioni massime di decodifica della risoluzione effettiva 9645E831-E01D-4FFF-8342-0A720E3E028F Connessione output è: output video digitale, Miracast, HDMI, DVI e così via.

Passa il contenuto quando è vincolato a:

  • (a) la larghezza del fotogramma deve essere minore o uguale alla larghezza massima del fotogramma in pixel e l'altezza del fotogramma minore o uguale all'altezza massima del fotogramma in pixel o
  • (b) l'altezza del fotogramma deve essere minore o uguale alla larghezza massima del fotogramma in pixel e la larghezza del fotogramma minore o uguale all'altezza massima del fotogramma in pixel o
Limitazione del tipo HDCP ABB2C6F1-E663-4625-A945-972D17B231E7 Connessione output è: output video digitale, Miracast, HDMI, DVI e così via. Passa il contenuto con HDCP 2.2 e il tipo di flusso di contenuto impostato su 1. Se HDCP 2.2 non riesce a coinvolgere o non è possibile impostare il tipo di flusso di contenuto su 1, NON passa il contenuto. È necessario specificare anche il livello di protezione dell'output video digitale non compresso di un valore maggiore o uguale a 271

La tabella seguente descrive l'implementazione drm PlayReady per Windows 10 di restrizioni esplicite per la protezione dell'output video analogico.

Scenario GUID If... Quindi...
Monitor computer analogico D783A191-E083-4BAF-B2DA-E69F910B3772 Connessione ed output è: VGA, analogico DVI–e così via. SWDRM: il PC vincola la risoluzione effettiva a 520.000 epx per frame e passa il contenuto HWDRM: NON passa il contenuto
Componente analogico 811C5110-46C8-4C6E-8163-C0482A15D47E Connessione ed output è: componente SWDRM: il PC vincola la risoluzione effettiva a 520.000 epx per frame e passa il contenuto HWDRM: NON passa il contenuto
Output della TV analogica 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 L'OPL della TV analogica è minore di 151 CGMS-A deve essere impegnato
225CD36F-F132-49EF-BA8C-C91EA28E4369 L'OPL della TV analogica è minore di 101 e la licenza non contiene 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 È necessario tentare il coinvolgimento di CGMS-A, ma il contenuto può essere riprodotto indipendentemente dal risultato
Controllo automatico del guadagno e striscia di colori C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA Passaggio del contenuto con risoluzione minore o uguale a 520.000 px all'output della TV analogica Imposta AGC solo per il video del componente e la modalità PAL quando la risoluzione è inferiore a 520.000 px e imposta informazioni AGC e striping di colori per NTSC quando la risoluzione è inferiore a 520.000 px, in base alla tabella 3.5.7.3. nelle regole di conformità
Output solo digitale 760AE755-682A-41E0-B1B3-DCDF836A7306 Output connessione ed è analogico Il contenuto non passa

Nota

Quando si usa un dongle di adattatore, ad esempio "Mini DisplayPort to VGA" per la riproduzione, Windows 10 visualizza l'output come output video digitale e non può applicare criteri video analogici.

La tabella seguente descrive l'implementazione drm PlayReady per Windows 10 che consente la riproduzione in altre circostanze.

Scenario GUID If... Quindi...
Output sconosciuto 786627D8-C2A6-44BE-8F88-08AE255B01A7 Se l'output non può essere ragionevolmente determinato o non è possibile stabilire OPM con il driver di grafica SWDRM: passa il contenuto HWDRM: NON passa il contenuto
Output sconosciuto con costrizione B621D91F-EDCC-4035-8D4B-DC71760D43E9 Se l'output non può essere ragionevolmente determinato o non è possibile stabilire OPM con il driver di grafica SWDRM: il PC vincola la risoluzione effettiva a 520.000 epx per frame e passa il contenuto HWDRM: NON passa il contenuto

Prerequisiti

Prima di iniziare a creare l'app UWP protetta da PlayReady, è necessario installare il software seguente nel sistema:

  • Windows 10.
  • Se si sta compilando uno degli esempi per PlayReady DRM per le app UWP, si deve usare Microsoft Visual Studio 2015 o versione successiva per compilare gli esempi. Si può comunque usare Microsoft Visual Studio 2013 per compilare uno degli esempi da PlayReady DRM per le app di Windows 8.1 Store.

Guida alla migrazione delle app UWP PlayReady

Questa sezione include informazioni su come eseguire la migrazione delle app PlayReady di Windows 8.x Store esistenti a Windows 10.

Lo spazio dei nomi per le app UWP PlayReady in Windows 10 è stato modificato da Microsoft.Media.PlayReadyClient a Windows.Media.Protection.PlayReady. Ciò significa che sarà necessario cercare e sostituire lo spazio dei nomi precedente con quello nuovo nel codice. Si farà comunque riferimento a un file winmd. Fa parte di windows.media.winmd nel sistema operativo Windows 10. Si trova in windows.winmd come parte di Windows SDK di TH. Per la piattaforma UWP, viene fatto riferimento in windows.foundation.univeralappcontract.winmd.

Per riprodurre contenuto HD (High Definition) protetto da PlayReady (1080p) e contenuto UHD (Ultra-High Definition), è necessario implementare la tecnologia DRM hardware PlayReady. Per informazioni su come implementare la tecnologia DRM hardware PlayReady, vedere DRM hardware.

Alcuni contenuti non sono supportati in DRM hardware. Per informazioni sulla disabilitazione della tecnologia DRM hardware e sull'abilitazione della tecnologia DRM software, vedere Override di DRM hardware.

Per quanto riguarda il gestore protezione multimediale, assicurarsi che il codice abbia le impostazioni seguenti, se non lo è già:

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

Acquisire in modo proattivo una licenza non persistente prima della riproduzione

Questa sezione descrive come acquisire licenze non persistenti in modo proattivo prima dell'inizio della riproduzione.

Nelle versioni precedenti di PlayReady DRM, le licenze non persistenti possono essere acquisite solo in modo reattivo durante la riproduzione. In questa versione è possibile acquisire licenze non persistenti in modo proattivo prima dell'inizio della riproduzione.

  1. Creare in modo proattivo una sessione di riproduzione in cui è possibile archiviare la licenza non persistente. Ad esempio:

    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. Collegare la sessione di riproduzione alla classe di acquisizione della licenza. Ad esempio:

    var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet();
    licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer;
    var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
    
  3. Creare una richiesta di servizio di licenza. Ad esempio:

    var laSR = licenseSession.CreateLAServiceRequest();
    
  4. Eseguire l'acquisizione della licenza usando la richiesta di servizio creata nel passaggio 3. La licenza verrà archiviata nella sessione di riproduzione.

  5. Collegare la sessione di riproduzione all'origine multimediale per la riproduzione. Ad esempio:

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

Eseguire una query per le funzionalità di protezione

A partire da Windows 10, versione 1703, è possibile eseguire query sulle funzionalità DRM HW, ad esempio decodificare codec, risoluzione e protezioni di output (HDCP). Le query vengono eseguite con il metodo IsTypeSupported che accetta una stringa che rappresenta le funzionalità per cui viene eseguito il supporto e una stringa che specifica il sistema di chiavi a cui viene applicata la query. Per un elenco dei valori stringa supportati, vedere la pagina di riferimento dell'API per IsTypeSupported. Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo di questo metodo .

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

Aggiungere arresto sicuro

Questa sezione descrive come aggiungere un arresto sicuro all'app UWP.

L'arresto sicuro consente a un dispositivo PlayReady di affermare in modo sicuro a un servizio di streaming multimediale che la riproduzione multimediale è stata arrestata per una determinata parte di contenuto. Questa funzionalità garantisce che i servizi di streaming multimediale forniscano un'applicazione accurata e la segnalazione delle limitazioni di utilizzo su dispositivi diversi per un determinato account.

Esistono due scenari principali per l'invio di una richiesta di arresto sicuro:

  • Quando la presentazione multimediale si interrompe a causa del raggiungimento della fine del contenuto o quando l'utente ha arrestato la presentazione multimediale in un punto centrale.
  • Quando la sessione precedente termina in modo imprevisto ,ad esempio a causa di un arresto anomalo del sistema o dell'app). L'app dovrà eseguire query, all'avvio o all'arresto, per eventuali sessioni di arresto sicuro in sospeso e inviare richieste separate da qualsiasi altra riproduzione multimediale.

Per un'implementazione di esempio di arresto sicuro, vedere il file securestop.cs nell'esempio PlayReady disponibile nel Browser di esempio di codice.

Usa DRM PlayReady su Xbox One

Per usare PlayReady DRM in un'app UWP in Xbox One, si dovrà prima registrare l'account del Centro per i partner che si stanno usando per pubblicare l'app per l'autorizzazione a usare PlayReady. È possibile effettuare questa operazione in uno dei due modi seguenti:

  • Richiedere al contatto l'autorizzazione microsoft.
  • Richiedere l'autorizzazione inviando l'account del Centro per i partner e il nome della società a pronxbox@microsoft.com.

Dopo aver ricevuto l'autorizzazione, è necessario aggiungere un altro <DeviceCapability> al manifesto dell'app. È necessario aggiungerlo manualmente perché attualmente non è disponibile alcuna impostazione in Progettazione manifesto dell'app. Attenersi a questa procedura per configurarne le varianti:

  1. Con il progetto aperto in Visual Studio, aprire Esplora soluzioni e fare clic con il tasto destro del mouse su Package.appxmanifest.

  2. Selezionare Apri con... scegliere Editor XML (testo) e fare clic su OK.

  3. Tra i tag <Capabilities> tag, aggiungere quanto segue <DeviceCapability>:

    <DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
    
  4. Salvare il file.

Infine, c'è un'ultima considerazione quando si usa PlayReady su Xbox One: nei kit di sviluppo è previsto un limite SL150 (ovvero non possono riprodurre contenuti SL2000 o SL3000). I dispositivi di vendita al dettaglio sono in grado di riprodurre contenuti con livelli di sicurezza più elevati, ma per testare l'app in un kit di sviluppo, è necessario usare il contenuto SL150. È possibile testare questo contesto in uno dei modi seguenti:

  • Usare contenuti di test curati che richiedono licenze SL150.
  • Implementare la logica in modo che solo determinati account di test autenticati siano in grado di acquisire licenze SL150 per determinati contenuti.

Usare l'approccio più appropriato per l'azienda e il prodotto.

Vedi anche