Musiques et sons

Pour jouer de la musique ou des sons dans un programme Delphi il suffit d'utiliser le composant TMediaPlayer. Il est disponible pour les projets FireMonkey comme les projets VCL. Ce composant se base sur des API de la plateforme sur laquelle on compile et permet de lire certains fichiers liés aux sons, à la musique et à des vidéos.

Il fournit un niveau d'abstraction suffisant pour s'en servir dans nos projets afin de lire des boucles comme des sons ponctuels.

Une première version de son encapsulation a été faite pour la première version de Ok Ducky! à l'occasion du week-end de stream carritatif pour le Sidaction 2021 sur Twitch. Depuis elle a évolué et se retrouve dans la librairie Delphi Game Engine sous la forme de l'unité Gamolf.FMX.MusicLoop.pas

Cette unité est utilisée dans mes jeux vidéos mais aussi sur le lecteur MP3 ZicPlay.

La classe TMusicLoop permet la lecture d'un son ou d'une musique de façon unitaire ou en boucle.

La classe TSoundList permet le référencement de sons ou musiques puis de les jouer. On passe par un pool de TMusicLoop permettant de lancer les sons en plusieurs exemplaires tout en laissant le précédent se terminer correctement. C'est notamment utilisé dans DAD48 pour lancer plusieurs fois les mêmes sons lorsqu'on ramasse plusieurs pièces en même temps.

L'avantage de ces classes c'est qu'elles tournent correctement sur toutes les plateformes prises en charge par Delphi.

L'inconvénient c'est qu'on ne peut pas "jouer" avec des effets audios comme on pourrait le faire avec BASS ou d'autres librairies dédiées.

A vous de voir si le fonctionnement standard : On/Off/Loop avec gestion du volume sonore vous suffit ou s'il vous en faut plus.


Liens associés

Ces liens s'ouvrent dans la même fenêtre que cette page. En cliquant dessus vous quitterez Les trucs et astuces d'un développeur Pascal.
Pensez à les ouvrir dans un nouvel onglet si vous préférez rester ici pour y revenir plus facilement.


Mug Pascal case in AlexandrieMug Toucan DX dans la baie de Rio