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
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:
Sans surprise,
la méthode Pause met le graphe en mode
pause.
Dans la méthode
click du bouton Stop:
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:
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:
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
3ème leçon
retour
vers le haut de la page
|