Mes contributions sur Delphi:


Cliquez sur la photo pour m'envoyer un e-mail:


Visitez les autres sections du site:

shome.gif


 Visit my English pages


Site optimisé pour un affichage en 1024x768.

 Dernière mise à Jour  de cette page:

le vendredi 29 avril 2005

 

      film.gif


      2ème leçon: Prise en mains de DSPack


Nous allons maintenant entrer dans de la programmation sous delphi. Pour continuer à suivre ce guide pratique, vous devriez disposer sur votre ordinateur d'une version de delphi 5 ,6 ou 7. Je précise que les versions de base (dites standard ou Personal) suffisent. Par ailleurs, je suppose que vous connaissez déjà les bases de la programmation de delphi.

1. Installer DSPack:

Pour se procurer DSPack, une seule adresse, celle de Henri Gourvest. La version à jour est la version 2.3.4 publiée le 3/10/2004 et que l'on peut télécharger dans un fichier DSPACK234.zip. Vous extrayez tous les fichiers en respectant les chemins inclus vers un dossier par exemple appelé c:\program files\borland\DSPack. Notez bien sûr dans quel dossier vous les avez extraits. Ci-dessous on l'appellera PATH.  Vous obtenez un dossier qui ressemble à cela:

Là bien sûr vous allez ouvrir le fichier readme.htm dans votre navigateur favori. En l'ouvrant, ne vous effrayez pas des diagrammes complexes de Henri Gourvest, et concentrez-vous sur la procédure d'installation qui figure en-dessous, dans la rubrique How To Install.

Elle vous rappelle qu'il faut avoir DirectX9 sur son micro, car la version 2.3.4 correspond à DirectX9. Ensuite il faut que les chemins PATH\src\directx9 et PATH\src\dspack soient ajoutés à votre librairie delphi, où PATH représente votre dossier d'installation, celui que vous avez noté plus haut; par exemple c:\Program Files\Borland\DsPack.

Sous delphi7, je fais Tools/Environment Options/Library et après avoir cliqué sur le bouton idoine, je rajoute les deux chemins dans Library Paths

.

La dernière étape est celle de la compilation et de l'installation des packages. Pour cela vous ouvrez dans delphi  (File/Open chez moi) le fichier DirectX9_Dx.dpk, où x=5,6,7 selon la version de delphi utilisée. Il se trouve dans le dossier PATH\packages. Chez moi c'est donc C:\Program Files\DSPack\packages\DirectX9_D7.dpk. Puis vous cliquez le bouton Compile et fermez la fenêtre Package.

Il faut faire de même avec DsPack_Dx.dpk où x=5,6,7 et qu'on trouve aussi dans le dossier PATH\packages. Puis avec DSPackDesign_Dx.dpk. Mais dans ce dernier cas, une fois fait Compile, il faut cliquer aussi sur le bouton Install.

Après le message qui vous annonce l'installation de toute une série de composants, vous constatez l'apparition dans la barre des composants de delphi, d'un nouvel onglet DsPack qui révèle les composants attendus:

Si vous êtes sous Windows 98, il se peut que vous ayez un avertissement comme le dit le fichier d'aide, et il faudra alors triturer autoexec.bat. Ouf. C'était un peu fastidieux, mais voilà qui est fait

2) Créer une première application directshow avec delphi

On va faire la même application simpliste que dans la Leçon 1, mais cette fois on la fait par programme.

Lancez dans delphi une nouvelle application et jetez sur votre Form un composant filtergraph, le premier composant de l'onglet DSPack. On ajoutera aussi trois boutons marqués respectivement Play, Pause et Stop, ainsi qu'un bouton Quitter.  Cela pourrait ressembler à ceci, dont je vous laisse le soin d'améliorer la présentation:

Je vous propose ensuite d'entrer le code suivant:

Dans la partie interface

      const fichier='f:\premiere\maillon.avi';

Vous créez une constante avec le nom du fichier multimedia à utiliser (mêmes remarques que dans leçon1): chez vous, vous mettrez bien sûr le nom de votre fichier multimedia avec son chemin à la place de f:\premiere\maillon.avi.

Dans la méthode click du bouton Play:

      if not filtergraph1.active then begin

        filtergraph1.active:=true;

        filtergraph1.RenderFile(fichier);

      end;

      filtergraph1.Play;

Si le graphe n'est pas actif, ce qui est le cas au premier lancement ou après un Stop, alors on le réinitialise: on le rend actif et on réinstalle les filtres. Ici c'est la méthode RenderFile(fichier) qui place un filtre File Source (Async.) contenant fichier. Elle fait dans la foulée l'équivalent de notre miraculeux Render Pin. C'est-à-dire en regardant quels sont les filtres installés sur le micro, et sachant quels sont ceux qui seraient adaptés au fichier qu'on a chargé, le filtergraph essaie de compléter le graphe jusqu'à la ressource physique de destination, qui sera par défaut l'écran et les hauts-parleurs, via la carte graphique et la carte son. Ensuite la méthode play met en route le graphe. Si le graphe était déjà actif, et était donc en mode Pause, il reprend là où il s'était arrêté, sans tout relancer, par un simple play.

Dans la méthode click du bouton Pause:

      filtergraph1.Pause;

Sans surprise, la méthode Pause met le graphe en mode pause.

Dans la méthode click du bouton Stop:

      filtergraph1.Stop;

      filtergraph1.Active:=false;

La méthode Stop arrête le graphe, mais dans la plupart des cas n'a guère plus d'effet que Pause. Pour atteindre notre objectif d'arrêter vraiment la lecture, nous rendons ensuite le graphe inactif.

Dans la méthode onclosequery de Form1:

      filtergraph1.cleargraph;

      filtergraph1.active:=false;

C'est une précaution nécessaire pour éviter des plantages à la fermeture de l'application, alors que le graphe ne serait pas totalement fermé. Cleargraph le vide de tous ses filtres, et ensuite on le rend inactif.

Dans la méthode Click du bouton Quitter:

      close;

Pour fermer la forme principale, et donc l'application.

Vous pouvez maintenant compiler votre application, et vous rendre compte que vous disposez d'un lecteur multimedia, certes très sommaire dans ses fonctionnalités, mais tout à fait opérationnel. Il ne sait lire qu'un seul fichier, celui que vous avez spécifié en constante, mais vous pouvez en changer et recompiler l'application. Votre choix peut ainsi porter sur une grande variété de types de fichiers multimedia, tous ceux dont le codec est installé sur votre micro: des fichiers avi, wav, mid, mp3, mpg, wmv... Dès la prochaine leçon, nous allons le perfectionner un peu.

3) Conclusion

Au terme de cette leçon, vous avez installé DSPack, du moins je l'espère, et créé votre première application directshow avec delphi. Vous avez vu qu'il est simple et performant d'utiliser le filtergraph, qui est le composant fondamental, et comment utiliser quelques-unes de ses méthodes comme renderfile, play, pause, stop ou cleargraph. Vous avez aussi perçu qu'il est important de bien gérer sa propriété Active. Pour aller un peu plus loin, je vous recommande de rechercher dans l'aide de DSPack (accessible depuis votre menu démarrer si vous avez bien installé l'exécutable) l'objet TFilterGraph et de regarder ses méthodes et ses propriétés.

Ici on peut élécharger le code source de cette leçon (dans une version delphi 7).

1ère leçon pink05_back.gif     pink05_next.gif 3ème leçon

retour vers le haut de la page