Condividi tramite


Conversione di un file di DRM-Protected in un flusso DRM 10 di Windows Media per dispositivi di rete

Dopo aver registrato e convalidato un dispositivo, è possibile iniziare a elaborare i messaggi di richiesta di licenza da esso. I messaggi di richiesta di licenza vengono inviati dai dispositivi quando è necessaria l'azione dell'applicazione. L'unica azione attualmente supportata è "Play", che è una richiesta di dati sicuri per la riproduzione.

Quando si riceve un messaggio di richiesta di licenza, seguire questa procedura:

  1. Analizzare il messaggio di richiesta di licenza chiamando il metodo IWMDRMMessageParser::P arseLicenseRequestMsg .
  2. Ottenere l'interfaccia IWMRegisteredDevice per il dispositivo chiamando il metodo IWMDeviceRegistration::GetRegisteredDeviceByID , passando il certificato e il numero di serie ottenuto nel passaggio 1.
  3. Verificare che il dispositivo sia pronto per ricevere dati sicuri:
  4. Creare un'istanza dell'oggetto transcryptor DRM chiamando la funzione WMCreateDRMTranscryptor .
  5. Chiamare il metodo IWMDRMTranscryptor::Initialize per inizializzare il transcryptor. Questo metodo accetta un puntatore all'implementazione dell'interfaccia IWMStatusCallback , che usa per recapitare messaggi di stato. Questo metodo restituisce anche un messaggio di richiesta di licenza che deve essere inviato al dispositivo prima di continuare.
  6. Quando il metodo IWMStatusCallback::OnStatus riceve il messaggio di stato WMT_TRANSCRYPTOR_INIT, chiamare il metodo IWMDRMTranscryptor::Seek per cercare la posizione iniziale appropriata nel file. Per iniziare all'inizio del file, è necessario chiamare Seek con il tempo 0.
  7. Il transcryptor invia un messaggio WMT_TRANSCRYPTOR_SEEKED quando è pronto per recapitare i dati dal file al momento della nuova presentazione. Effettuare chiamate ripetute al metodo IWMDRMTranscryptor::Read per ottenere blocchi convertiti di dati multimediali. Ogni chiamata è asincrona e non viene completata finché non viene ricevuto un messaggio WMT_TRANSCRYPTOR_READ. Quando si riceve il messaggio, è possibile inviare i dati al dispositivo di ricezione.
  8. Quando viene visualizzato un messaggio di WMT_TRANSCRYPTOR_READ con il parametro hr impostato su NS_S_TRANSCRYPTOR_EOF, l'intero file è stato letto. A questo punto, chiamare il metodo IWMDRMTranscryptor::Close per chiudere il file e liberare le risorse.
  9. Quando viene ricevuto il messaggio WMT_TRANSCRYPTOR_CLOSED, è possibile rilasciare l'interfaccia IWMDRMTranscryptor .

Nota

DRM non è supportato dalla versione basata su x64 di questo SDK.

 

Uso del protocollo DRM 10 di Windows Media per dispositivi di rete