Lecture de fichiers avec le lecteur asynchrone

[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.]

Le lecteur asynchrone lit le contenu des fichiers ASF à l’aide de plusieurs threads et appels asynchrones. Les fonctionnalités prises en charge par le lecteur asynchrone le rendent bien adapté aux applications qui restituent du contenu aux utilisateurs finaux.

Les fonctionnalités les plus basiques de l’objet lecteur peuvent être décomposées en étapes suivantes. Dans ces étapes, « l’application » fait référence au programme que vous écrivez à l’aide du Kit de développement logiciel (SDK) au format Windows Media.

  1. L’application implémente l’interface IWMReaderCallback pour gérer les messages du lecteur. Cela inclut deux méthodes de rappel : OnStatus, qui reçoit des messages relatifs à la status de différents aspects du lecteur et OnSample, qui reçoit des exemples non compressés du lecteur.
  2. L’application transmet au lecteur le nom d’un fichier à lire. Lorsque le lecteur ouvre le fichier, il affecte un numéro de sortie à chaque flux. Si le fichier utilise l’exclusion mutuelle, le lecteur affecte une seule sortie pour tous les flux mutuellement exclusifs.
  3. L’application obtient des informations sur la configuration des différentes sorties du lecteur. Les informations collectées permettront à l’application de restituer correctement les exemples de médias.
  4. L’application indique au lecteur de commencer à lire les données du fichier. Le lecteur commence à remettre des exemples non compressés au rappel OnSample un par un dans des mémoires tampons encapsulées dans des objets de mémoire tampon. Les exemples remis par le lecteur sont dans l’ordre au moment de la présentation. Le lecteur continue à distribuer des exemples jusqu’à ce que l’application l’arrête ou que la fin du fichier soit atteinte.
  5. L’application est responsable du rendu des données après leur remise par le lecteur. Le Kit de développement logiciel (SDK) au format Windows Media ne fournit aucune routine de rendu. En règle générale, les applications utilisent d’autres sdk pour afficher des données, comme le Kit de développement logiciel (SDK) Microsoft DirectX® ou les fonctions multimédias de Microsoft SDK de plateforme Windows.
  6. Une fois la lecture terminée, l’application indique au lecteur de fermer le fichier.

Ces étapes sont illustrées dans l’exemple d’application AudioPlayer, entre autres. Pour plus d’informations, consultez Exemples d’applications.

Le lecteur prend également en charge des fonctionnalités plus avancées. Le lecteur vous permet d’effectuer les opérations suivantes :

  • Suspendre la lecture d’un fichier.
  • Récupérez les statistiques de performances du lecteur.
  • Contrôlez la sélection de flux pour les flux qui s’excluent mutuellement.
  • Allouez manuellement des mémoires tampons pour la sortie.
  • Fournissez votre propre horloge.
  • Récupérez le status des opérations de fichier (mise en mémoire tampon, téléchargement ou enregistrement).
  • Ouvrez un fichier à l’aide de l’interface COM standard, IStream.
  • Recherchez des points spécifiques dans un fichier ASF.
  • Lit les données de profil à partir de l’en-tête du fichier.

Les sections suivantes décrivent en détail l’utilisation de l’objet reader.

Lecture de fichiers ASF

Lecteur, objet