Movie player (managed directx)

Soyez le premier à donner votre avis sur cette source.

Vue 24 223 fois - Téléchargée 5 601 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

Messages postés
2
Date d'inscription
jeudi 14 septembre 2006
Statut
Membre
Dernière intervention
2 novembre 2008

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
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

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 ?
Messages postés
78
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
14 août 2010

Mardi 22 mai 2007

Une nouvelle version de zMoviePlayer est disponible ici :
http://www.codeproject.com/useritems/zMoviePlayer.asp
Messages postés
78
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
14 août 2010

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.
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008

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.