Espace perso
Ignorer les liens de navigationAccueil >> .Net >> Managed DirectX >> AudioVideoPlayback
Ignorer les liens de navigation
Accueil de mon site Accueil
Vous trouverez ici des tutoriels en relation avec le Framework .Net .Net .Net
 SQL Server SQL Server
 IIS IIS
 Tests Tests
 Livres Livres

Managed DirectX - AudioVideoPlayBack - VB.NET

Publié le vendredi 20 août 2004, dernière modification le lundi 28 janvier 2008

Pour ceux qui ont déjà utilisé DirectX et particulièrement DirectShow, Audio Video Playback est le namespace du Managed DirectX qui le remplace. Microsoft a sans doute décidé de changer le nom, puisque AudioVideoPlayback n'offre pas toutes les posibilités de son prédécesseur. La gestion des DVD a disparu, impossible d'intervenir sur le Graphe de Filtres, ... . Si vous cherchez DirectShow dans la documentation de DirectX pour C++, vous verez que Microsoft la mise dans un fichier séparé, tout comme DirectPlay et DirectMusic.

Important : Certaines informations que vous rencontrerez dans ce documents peuvent se réveler inexactes. Managed DirectX étant une technologie assez récente, la documentation à son sujet est encore quelque peu légère. Je ferais donc des mises-à-jour au fur et à mesure que je pourrais vérifier ces informations. Merci de votre compréhension.

1. Description du namespace Microsoft.DirectX.AudioVideoPlayback

Le namespace AudioVideoPlayback n'est pas très fourni par rapport à son "ancêtre" DirectShow.

1.1. Classes

  • Audio : Fournit toutes les méthodes de bases pour reproduire un flux audio
  • TextureRenderEventArgs : EventArgs utilisé lors du rendu d'une video comme texture. Je ne l'aborderais pas ici
  • Video : Fournit toutes les méthodes de bases pour reproduire un flux video et audio. Video contient un attribut de type audio

1.2. Enumérations

  • SeekPositionFlags : Permet de définir la manière de se déplacer dans un flux audio ou video.
  • StateFlags : Définit les états des flux Audio ou Vidéo.

1.3. Structures

  • SeekingCaps : Structure qui donne des informations sur les possibilités du flux audio ou video.

1.4. Delegates

  • TextureRenderEventHandler : Délégué de la méthode TextureReadyToRender de l'objet Video.

2. Classes Audio et Video

On ne va pas voir en détail le contenu de ces classes mais seulement aborder les points les plus importants. Je détaillerais ensuite les particularités de la classe Video.

2.1. Constructeurs

Audio possède deux constructeurs. Le premier prend en argument une chaine avec le nom du fichier à reproduire. Le second est le même que le premier avec un second argument de type booléen qui indique si la lecture doit commencer automatiquement à la fin du chargement du média (true) ou pas (false).

2.2. Méthodes

Nom Description
FromFile et FromURI Ce sont deux méthodes sont partagées (shared en VB.NET et static en C#) qui permettent de créer une instance à partir d'un nom de fichier ou d'une URI. Elles ont les mêmes surcharges que le constructeur. Elles retournent un objet de type Audio ou Video selon le cas.
Play, Pause et Stop Rien de bien important à dire. Leurs noms les décrivent d'eux mêmes.
SeekCurrentPosition Définit la nouvelle position courante dans le flux du paramètre de type SeekPositionFlags et de SeekingCaps.
SeekStopPosition Définit la nouvelle position à laquelle doit s'arrêter le flux du paramètre de type SeekPositionFlags et de SeekingCaps.

2.3. Propriétés

Nom Description
Balance Définit la balance du flux sonore : -10000 pour tout sur le côté gauche, 0 équilibré et 10000 pour tout à droite. Cette propriété n'influe pas sur la balance de la carte son directement. Si vous ouvrez sndvol32.exe (le haut parleur dans la barre de taches), vous verrez que le volume ne change pas.
CurrentPosition Position courante dans le flux en secondes (plus les millisecondes)
Duration Longueur du média en secondes (plus les millisecondes)
Playing, Paused et Stopped Pour connaitre l'état actuel du média (en lecture, en pause ou arrêté)
SeekingCaps Renvoie les possibilités du flux actuel
State Equivalent à Playing, Paused et Stopped

StopPosition

Position à laquelle le flux a été stoppé

Volume

-10000 pour un niveau de 0 et 0 pour un niveau maximal. Cette propriété n'influe pas sur le volume de la carte son directement. Si vous ouvrez sndvol32.exe (le haut parleur dans la barre de taches), vous verez que la balance ne change pas.

2.4. Evénements

Nom Description
Starting, Pausing et Stopping Quand le flux est mis en lecture, en pause ou arrêté, ces évènements sont générés

Ending

Quand l'objet Audio ou Video arrive à la fin du flux, il génère cet évènement.

2.5. Exceptions

Les classes Audio et Video ne génèrent qu'un type d'exception (disponible dans le namespace DirectX) de type DirectXException. Pour plus d'infos sur le code de l'exception, consultez la table des codes d'erreurs sur la MSDN

3. Spécificités de la classe Video

La classe Video possède d'autre méthodes et propriétés par rapport à la classe Audio.

3.1. Méthodes

Nom Description
HideCursor et ShowCursor Masque ou montre le curseur de la souris pendant la lecture de la Video. En plein écran, inutile de vous occuper du curseur, il est automatiquement. Un appel à l'une de ces 2 méthodes lèvera une exception.
RenderToTexture Permet de reproduire la video comme une texture d'un objet Direct3D. Je n'aborderais pas Direct3D ici, mais par exemple, votre video pourrait être la texture d'un cube dans un environement 3D.

3.2. Propriétés

Nom Description
Audio

Une video possède une propriété de type Audio. Pour plus de détails, voir ce qui a été dit avant.

Fullscreen

Permet de passer du mode plein écran au mode fenêtré et vis versa. Permet également de savoir si la video est en plein écran ou non.

AverageTimePerFrame

Renvoie la durée moyenne que dure une trame, une image de la video. A ne pas confondre avec le nombre d'images par secondes.

IsCursorHidden

Pour savoir si le curseur a été masqué ou montré.

Size

Renvoie ou définie la taille de la video à l'écran, pas au niveau du fichier.

Owner

S'il n'est pas spécifié, une fenêtre est créée automatiquement pour reproduire la vidéo. Sinon, le owner peut être tout contrôle héritant de System.Windows.Forms.Control (j'ai essayé dans une ListeBox, ca marche :D )

MinimumIdealSize et MaximumIdealSize

Récupère les tailles minimums et maximums pour afficher la video.

3.3. Evénements

TextureReadyToRender

4. Application de démonstration

J'ai développé pour illustrer tous ces propos une application qui reprend tous les concepts que nous avons vu précédemment.

Sources pour Visual Studio .NET 2003
Format RAR
Format ZIP

Remerciements

Merci à freegreg et à morpheus pour la correction des quelques erreurs qui s'étaient glissées dans les tutos.

Copyright © 2010 - Olivier Delmotte
Ce site utilise des icône de la librairy Silk icon set 1.3

Valid XHTML 1.0 Transitional ASP.Net Valid CSS!