Partager via


Conversion d’un fichier DRM-Protected en un flux Windows Media DRM 10 pour les périphériques réseau

Une fois qu’un appareil est inscrit et validé, vous pouvez commencer à traiter les messages de demande de licence à partir de celui-ci. Les messages de demande de licence sont envoyés par les appareils lorsque l’action de l’application est nécessaire. La seule action actuellement prise en charge est « Lire », qui est une demande de données sécurisées pour la lecture.

Lorsque vous recevez un message de demande de licence, vous devez effectuer les étapes suivantes :

  1. Analysez le message de demande de licence en appelant la méthode IWMDRMMessageParser::P arseLicenseRequestMsg .
  2. Obtenez l’interface IWMRegisteredDevice pour l’appareil en appelant la méthode IWMDeviceRegistration::GetRegisteredDeviceByID , en transmettant le certificat et le numéro de série obtenus à l’étape 1.
  3. Vérifiez que l’appareil est prêt à recevoir des données sécurisées :
    • Appelez IWMRegisteredDevice::IsApproved pour vérifier que l’appareil a été approuvé. L’approbation doit toujours être basée sur les préférences de l’utilisateur.
    • Appelez IWMRegisteredDevice::IsValid pour vérifier que l’appareil a été validé au cours des dernières 48 heures. Si l’appareil n’est pas valide, vous devez effectuer une détection de proximité. Pour plus d’informations, consultez Exécution de la détection de proximité.
    • Appelez IWMRegisteredDevice::IsOpened pour vérifier que l’appareil a été ouvert. Si l’appareil n’est pas ouvert, vous pouvez l’ouvrir en appelant IWMRegisteredDevice::Open. Vous ne pouvez avoir que 10 appareils ouverts sur l’ordinateur à la fois. Il est possible que vous deviez fermer un autre appareil avant de pouvoir ouvrir celui pour lequel vous traitez la demande. Pour fermer un appareil, appelez la méthode IWMRegisteredDevice::Close .
  4. Créez une instance de l’objet de transcrypteur DRM en appelant la fonction WMCreateDRMTranscryptor.
  5. Appelez la méthode IWMDRMTranscryptor::Initialize pour initialiser le transcrypteur. Cette méthode prend un pointeur vers votre implémentation de l’interface IWMStatusCallback, qu’elle utilise pour remettre status messages. Cette méthode retourne également un message de demande de licence qui doit être envoyé à l’appareil avant de continuer.
  6. Lorsque la méthode IWMStatusCallback::OnStatus de votre application reçoit le message WMT_TRANSCRYPTOR_INIT status, appelez la méthode IWMDRMTranscryptor::Seek pour rechercher la position de début appropriée dans le fichier. Pour commencer au début du fichier, vous devez appeler Seek avec le temps 0.
  7. Le transcrypteur envoie un message WMT_TRANSCRYPTOR_SEEKED lorsqu’il est prêt à remettre des données à partir du fichier à l’heure de la nouvelle présentation. Effectuez des appels répétés à la méthode IWMDRMTranscryptor::Read pour obtenir des blocs convertis de données multimédias. Chaque appel est asynchrone et n’est pas terminé tant qu’un message WMT_TRANSCRYPTOR_READ n’est pas reçu. Lorsque vous recevez le message, vous pouvez envoyer les données à l’appareil de réception.
  8. Lorsque vous recevez un message WMT_TRANSCRYPTOR_READ avec le paramètre hr défini sur NS_S_TRANSCRYPTOR_EOF, le fichier entier a été lu. À ce stade, appelez la méthode IWMDRMTranscryptor::Close pour fermer le fichier et les ressources libres.
  9. Lorsque le message WMT_TRANSCRYPTOR_CLOSED est reçu, vous pouvez libérer l’interface IWMDRMTranscryptor .

Notes

La gestion des droits numériques n’est pas prise en charge par la version x64 de ce Kit de développement logiciel (SDK).

 

Utilisation du protocole Windows Media DRM 10 pour les périphériques réseau