Movie player (managed directx)

Soyez le premier à donner votre avis sur cette source.

Vue 24 748 fois - Téléchargée 5 706 fois

Description

Introduction :
Après avoir constaté que mon player multimédia ne fonctionnait pas sous VISTA,
je me suis mis en quête d'une solution basée sur l'assembly DirectX managée AudioVideoPlayback.

Hélas tout ce que j'ai essayé sur VISTA premium, a échoué lamentablement, soit à cause des drivers d'origine qui comportent de nombreux bugs, soit à cause du manque de compatibilité de VISTA avec les codes créés pour XP.
J'étais sur le point de tout laisser tomber, lorsque j'ai appris que Microsoft proposait sur sont site MSDN une nouvelle version de DirectX 9 (la version 9L) compatible... VISTA.

J'ai donc téléchargé cette version et, miracle, j'ai pu faire fonctionner le même code sous VISTA et sous XP.

Voici donc, avant toute chose, le lien pour télécharger la dernière version de DirectX :
http://www.microsoft.com/downloads/details.aspx?familyid=86cf7fa2-e953-475c-abde-f016e4f7b61a&displaylang=en

Avec cette version vous pourrez utiliser l'assembly managée Microsoft.DirectX.AudioVideoPlayback avec VISTA.

Documentation :
Après avoir installé le SDK DirectX en utilisant le répertoire par défaut, vous trouverez la documentation sous forme de fichier CHM dans ce répertoire :
C:\Program Files\Miscrosoft DirectX SDK (April 2007)\Documentation\DirectX9\directx9_m.chm

Utilisation du player :
zMoviePlayer est capable de jouer tous les films au format : avi, mpg, mpeg, wmv, DivX, Xvid.
(à condition d'avoir installé au préalable le bon CODEC video)

Lorsqu'on est en mode "plein écran" le déplacement de la souris vers le bas de l'écran, montre ou cache le panneau de commande.

Pour choisir un film, utilisez au choix le menu pour ouvrir le sélecteur de fichier standard, ou effetuez un tiré déplacé depuis l'Explorateur vers la fenêtre de zMoviePlayer.

Utilisation du code :
La classe DirectX principale se nomme Video, elle est très facile à utiliser.
Vous pouvez obtenir tous les détails sur son utilisation à partir du menu contextuel de VS (Atteinde la définition).

Interface :
Comme je voulais utiliser une interface dans le style "WMP 11" j'ai ajouté mes classes maison pour skinner l'apparence du player.

- SkinButton.cs
User control to create skinned button using one single 5-image bitmap matching each of the button state: normal, down, disabled, focused, hover.
You can use either "standard" push button or shaped button with region.

- SkinTrackbar.cs
User control to create a mouse only skinned track bar.
The thumb tracker can have any size or shape based on a provided bitmap.
The control orientation is based on the ratio between width and height, if width is larger than height then horizontal else vertical.
To help the user to figure the moving of the thumb track, the control uses different colors to show the current value.
You can inverse ranging swapping min/max values.

- SkinEngine.cs
This class is responsible for the drawing of the skinned controls.

Point important :
Pour supprimer le message "loaderlock" exception lorsque vous utilisez l'environnement VS,
effectuez un "Ctrl + Alt + E" pour ouvrir la boîte de dialogue de gestion des exceptions,
choisissez "Managed Debugging Assistants" et décochez "Loaderlock".

Conclusion :


Vous trouverez toutes mes démos C# sur mon site dans la section "C# corner"
http://www.zapsolution.com/winlift/ccorner.htm

Note : zMoviePlayer fonctionne aussi bien sous XP que sous VISTA...

Bons films !

Patrice Terrier
www.zapsolurion.com

Codes Sources

A voir également

Ajouter un commentaire Commentaires
TOTOBROS Messages postés 2 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 2 novembre 2008
2 nov. 2008 à 18:48
BONJOURS A TOUS J AI TROUVER LA SOLUTION

il faut avant de compiler votre projet :

aller au menu " projet" de vb.2008
ensuite " proprietes de windowsform "

ensuite aller au menu " generer " a gauche
reperer la section "plateforme cible" et selectionner x86

voila
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
29 déc. 2007 à 00:32
Comment utiliser les librairies Microsoft.DirectX dans visual studio 2005 après avoir télcharger et installer la dernière version.
Y a-t-il une manipulation particulière ?
cs_Zap Messages postés 78 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 14 août 2010
22 mai 2007 à 19:24
Mardi 22 mai 2007

Une nouvelle version de zMoviePlayer est disponible ici :
http://www.codeproject.com/useritems/zMoviePlayer.asp
cs_Zap Messages postés 78 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 14 août 2010
25 avril 2007 à 19:01
D'habitude je code effectivement ce genre de chose avec la flat API.
Mais çà m'a permis de tester l'assembly DirectX pour DotNET, et c'est ce que le code vous permet aussi de tester.
Tester un OCX n'a aucun intérêt pour moi.
Mais je respecte votre opinion et ne souhaite pas polémiquer d'avantage sur ce sujet.
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
25 avril 2007 à 17:54
Mouais... Tu es sûr que tu veux pas coder en natif... histoire d'être sur que, en tant que programmeur professionnel, ton code ne soit pas tributaire de celui Microsoft .NET ?

C'est un peu ridicule dans le sens ou WLM est installé sur toutes les machines, alors que la dernière version de DirectX... De plus, un changement de version de DirectX et ton code risque d'empatir (changement de manière de fonctionner, ...)
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.