Menu

A

|

A

Lire du son avec DirectX

Aujourd’hui je vous propose une petite classe que j’ai écrite et qui permet de jouer un son en WPF (et donc par extension sur Microsoft Surface). En effet, par expérience je n’était pas satisfait des objets (MediaElement, SoundPlayer, etc.) fournis par défaut dans le Framework .Net car soit ils leurs manquent des fonctionnalités (par exemple la durée du média pour le SoundPlayer), soit ils sont compliqués a mettre en place (MediaElement qui doit forcément être dans l’arbre visuel). J’ai donc pris le problème a bras le corps et décidé d’écrire un petit bout de code avec les assemblies DirectX Managées.

La classe est simple et fait des opérations basiques, a savoir lire un fichier audio sur le disque dur et nous notifie quand elle commence la lecture ou l’arrête. On peut bien sûr allez plus loin, mais je donne ici plus un squelette qu’une classe ultra complète. Pour l’utiliser, il faut installer le SDK DirectX pour pouvoir utiliser l’assembly Microsoft.DirectX.AudioVideoPlayback. Si vous ne désirez pas installer le SDK je vous la fournis ci-dessous.

DirectAudioPlayer (3,95 kb)

AudioVideoPlayback (20,98 kb)

L’avantage de cette petite classe c’est qu’en passant par DirectX, on bénéficie des codecs installés sur son poste car cela passe par DirectShow. En espérant que cela vous sera utile.

Lire du son avec DirectX

Aujourd’hui je vous propose une petite classe que j’ai écrite et qui permet de jouer un son en WPF (et donc par extension sur Microsoft Surface). En effet, par expérience je n’était pas satisfait des objets (MediaElement, SoundPlayer, etc.) fournis par défaut dans le Framework .Net car soit ils leurs manquent des fonctionnalités (par exemple la durée du média pour le SoundPlayer), soit ils sont compliqués a mettre en place (MediaElement qui doit forcément être dans l’arbre visuel). J’ai donc pris le problème a bras le corps et décidé d’écrire un petit bout de code avec les assemblies DirectX Managées.

La classe est simple et fait des opérations basiques, a savoir lire un fichier audio sur le disque dur et nous notifie quand elle commence la lecture ou l’arrête. On peut bien sûr allez plus loin, mais je donne ici plus un squelette qu’une classe ultra complète. Pour l’utiliser, il faut installer le SDK DirectX pour pouvoir utiliser l’assembly Microsoft.DirectX.AudioVideoPlayback. Si vous ne désirez pas installer le SDK je vous la fournis ci-dessous.

DirectAudioPlayer (3,95 kb)

AudioVideoPlayback (20,98 kb)

L’avantage de cette petite classe c’est qu’en passant par DirectX, on bénéficie des codecs installés sur son poste car cela passe par DirectShow. En espérant que cela vous sera utile.

No Comments

Comments Are Closed