Envoi de données ASF à un point de publication
[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par lecteur source et enregistreur récepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
Vous pouvez utiliser le Kit de développement logiciel (SDK) au format Windows Media pour envoyer des données ASF à un point de publication sur un serveur Windows Media. Le serveur diffuse ensuite les données à partir de ce point de publication. Ce scénario est utile si vous capturez ou réécodez du contenu sur un ordinateur et que vous souhaitez distribuer le contenu à partir d’un autre ordinateur (ou de plusieurs ordinateurs). Il est également utile si vous devez déplacer du contenu d’un ordinateur à l’intérieur d’un pare-feu vers un serveur Windows Media en dehors du pare-feu, car la distribution push utilise le protocole HTTP.
Notes
Un point de publication agit essentiellement comme un redirecteur. Le client spécifie le point de publication dans l’URL (par exemple, mms://MyServer/MyPublishingPoint) et le serveur le traduit en demande de contenu.
Pour envoyer des données au point de publication, attachez l’objet récepteur push à l’objet writer. Le récepteur push est utilisé pour ouvrir la connexion au serveur et gérer la session push. L’objet writer gère tous les autres aspects de la création du fichier.
Procédez comme suit :
- Créez l’objet writer en appelant la fonction WMCreateWriter , qui retourne un pointeur IWMWriter .
- Créez l’objet récepteur push en appelant la fonction WMCreateWriterPushSink , qui retourne un pointeur IWMWriterPushSink .
- Attachez le récepteur réseau à l’enregistreur en appelant IWMWriterAdvanced::AddSink sur l’enregistreur, avec un pointeur vers l’interface IWMWriterPushSink du récepteur réseau.
- Connectez-vous au serveur en appelant IWMWriterPushSink::Connect.
- Écrire le flux. Cette étape implique la définition du profil sur l’objet writer, l’envoi d’exemples à l’enregistreur et éventuellement d’autres tâches. Pour plus d’informations, consultez Écriture de fichiers ASF. D’autres tâches peuvent inclure la définition d’attributs de métadonnées (comme décrit dans Utilisation des métadonnées) ou la définition de la gestion des droits numériques dynamiques sur le flux (comme décrit dans Activation de la prise en charge DRM). Ces tâches sont effectuées exactement comme elles sont pour l’écriture de fichiers ASF.
- Une fois l’écriture terminée, appelez IWMWriterAdvanced::RemoveSink sur l’enregistreur pour détacher l’objet récepteur push.
- Appelez IWMWriterPushSink::EndSession sur le récepteur push pour terminer la session avec le serveur.
Ces étapes sont illustrées dans l’exemple d’application WMVNetWrite.
Notes
Si vous envoyez un fichier vidéo à très faible débit, il peut ne pas commencer à lire sur le point de publication pendant plusieurs secondes. Cela peut se produire dans différents cas, par exemple lorsqu’un paquet unique contient de nombreuses petites images vidéo et aucun audio, ou lorsqu’il existe un long intervalle de temps entre le premier paquet et le deuxième paquet dans un fichier vidéo uniquement à faible débit de bits. Pour éviter ce problème, insérez un flux audio silencieux dans le fichier.
Authentification
L’authentification sur le serveur est gérée automatiquement par l’objet récepteur push. Toutefois, l’application peut avoir besoin de fournir des informations d’identification. Cela se fait via l’interface de rappel IWMCredentialCallback , comme suit :
- Implémentez l’interface IWMStatusCallback et IWMCredentialCallback dans votre application.
- Interrogez l’objet récepteur push pour l’interface IWMRegisterCallback .
- Appelez IWMRegisterCallback::Advise avec un pointeur vers l’interface IWMStatusCallback de votre application.
- Si le récepteur push a besoin d’obtenir des informations d’identification à partir de l’application, il interroge le pointeur IWMStatusCallback pour l’interface IWMCredentialCallback et appelle IWMCredentialCallback::AcquireCredentials. Pour plus d’informations sur cette méthode, consultez Authentification.
- Lorsque vous avez terminé, appelez IWMRegisterCallback::Unadvise pour arrêter de recevoir des notifications d’événements à partir du récepteur Push.
Rubriques connexes