Partager via


Utilisation de récepteurs de fichiers

[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 le lecteur source et l’enregistreurré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.]

Dans des circonstances normales, vous pouvez simplement transmettre au writer un nom de fichier de sortie à l’aide de la méthode IWMWriter::SetOutputFilename , et l’objet writer écrit automatiquement le fichier sur le disque. Dans ce cas, l’enregistreur crée et contrôle un objet récepteur de fichier writer qui gère l’écriture du fichier sur le disque. Un objet récepteur de fichier writer contrôle le flux de données de l’objet writer vers un fichier unique.

Vous pouvez créer vos propres récepteurs de fichiers pour mieux contrôler la façon dont le récepteur écrit le fichier. Vous pouvez également accéder au récepteur de fichier writer par défaut créé par l’enregistreur en réponse à un appel à SetOutputFilename.

Création de récepteurs de fichiers

Pour créer un récepteur de fichiers et l’ajouter au writer, procédez comme suit.

  1. Créez un récepteur en appelant la fonction WMCreateWriterFileSink .
  2. Fournissez un nom de fichier pour le récepteur en appelant IWMWriterFileSink::Open.
  3. Ajoutez le récepteur de fichiers au writer en appelant IWMWriterAdvanced::AddSink.
  4. Effectuez l’écriture de la manière habituelle.
  5. Une fois l’écriture terminée, le récepteur ferme automatiquement le fichier.

Arrêt et démarrage des récepteurs de fichiers

Une fois les opérations d’écriture commencées, vous pouvez arrêter l’écriture dans un récepteur de fichiers en appelant IWMWriterFileSink2::Stop.

Il existe de nombreuses raisons potentielles pour lesquelles vous souhaitez arrêter d’écrire dans un récepteur. Par exemple, si vous enregistrez à partir d’une source en direct, vous ne serez peut-être intéressé que par une partie du contenu.

Vous pouvez reprendre l’écriture dans un récepteur de fichiers en appelant IWMWriterFileSink2::Start. Stop et Start utilisent les temps de présentation pour contrôler approximativement le moment où la commande est exécutée. Vous pouvez utiliser les méthodes IWMWriterFileSink3 pour mieux contrôler les heures de démarrage et d’arrêt.

Fermeture des récepteurs de fichiers

Normalement, un récepteur de fichiers est fermé automatiquement. Si vous avez terminé d’écrire dans un récepteur, mais que les opérations d’écriture dans d’autres récepteurs se poursuivent, vous devez fermer explicitement le récepteur pour conserver les ressources. Pour fermer un récepteur de fichiers, appelez IWMWriterFileSink2::Close.

Obtention des statistiques du récepteur

Vous pouvez obtenir la taille et la durée du fichier d’un récepteur ouvert en appelant respectivement IWMWriterFileSink2::GetFileSize et IWMWriterFileSink2::GetFileDuration .

IWMWriterFileSink, interface

IWMWriterFileSink2, interface

IWMWriterFileSink3, interface

Récepteur de fichiers d’auteur, objet

Écriture de fichiers ASF