IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Jouer un AVI dans un Picture Box ou un panel


Sujet :

Windows Forms

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Jouer un AVI dans un Picture Box ou un panel
    Bonjour je cherche qq info pour réussir a jouer un AVI sur un PB en Csharp

    J'ai compris que je devais installer DirectX pour cela
    Ce que j'ai fait

    Mais malgre l'installation (tres tres rapide) je ne vois aucune reference DirectX dans la liste des references disponibles


    Quelqu'un a-t-il une expérience ?

    Merci de votre aide
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Un picturebox c'est fait pour afficher une image, pas une vidéo. Un panel c'est un conteneur pour d'autres éléments graphiques, c'est pas non plus fait pour de la vidéo.

    Il te te suffit de trouver un lecteur multimedia et de l'intégrer à ton appli. Tu peux par exemple le faire avec Windows Media Player:
    http://msdn.microsoft.com/en-us/library/bb248593(VS.85).aspx
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    après l'installation de DirectX : references > ajouter une reference > .NET > Microsoft.DirectX,
    ça doit fonctionner,
    si tu veux afficher ta video dans la meme form sans ouvrir une nouvelle fenetre pour le player, tu peux utiliser l'ActiveX de VLC : "axVLCPlugin"

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    après l'installation de DirectX : references > ajouter une reference > .NET > Microsoft.DirectX,
    Ben non justement !

    D'ailleurs l'installation de DirectX me semble bien rapide !
    Je soupconne une dll a recopier quelque part mais la (les) quelles ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci The Badger Man

    -Connais tu la différence (avantage )

    Entre WMP et DirectX AudioVideoPlayback ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    pas de dll à copier,
    tu n'as qu'a suivre les étapes ici

  7. #7
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci

    Je viens de réaliser que j'avais installé la version redistribuable mais pas le SDK
    Maintenant c'est OK

    Mais j'aimerais quand meme savoir s'il est mieux d'employer le Windows Media Player ou le DirectX
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Avec media player tu as un composant déjà tout prêt.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 250
    Points : 420
    Points
    420
    Par défaut
    Bonjour,
    ne serait-il pas mieux pour ce qu'il souhaite faire en C#, de le faire en WPF ?

  10. #10
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    ne serait-il pas mieux pour ce qu'il souhaite faire en C#, de le faire en WPF ?
    Hola !

    Merci pour la suggestion mais ...
    Je developpe en WinForm une application deja bien étoffée je vais pas tout changer en WPF simplement pour le plaisir d'éventuellement pouvoir afficher des AVI qui ne serait qu'un agrément complémentaire.
    Un a part arriver à maitriser un peu les détails il ne semble pas que cela represente une réelle difficulté en WinForm !

    Je ne vais pas changer de voiture parce que j'essaye de trouver le crick et la bonne clef pour remplacer un pneu !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  11. #11
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 250
    Points : 420
    Points
    420
    Par défaut
    Autant pour moi, je croyais que c'était pour faire un test ou autre. A la vue du premier message je ne pouvais pas me douter qu'il y avait "une application déjà bien étoffée".

  12. #12
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Comme le dit The_badger_man:
    "Avec media player tu as un composant déjà tout prêt."

    Le SDK de DirectX et plutôt fait pour faire du DirectX en C++, d'ailleurs tous les exemples sont écrit en C++...

    Pour profiter de DirectX dans une application C# il faut faire du "Managed DirectX" une idée qui (me semble-t-il) a été abandonné par Microsoft qui favorise le XNA comme solution. Cependant l'XNA est (surtout) prévu pour faire des jeu vidéo pour Windows, XBox 360 et la Zune.

    Il mets néanmoins à disposition une classe GraphicsDevice qui permets de transformer n'importe quel "Control" en contrôle DirectX. Tu pourrais donc, lui donner un panel (ou une fenêtre) et dessiner dessus en profitant de l'accélération matériel offert par DirectX.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    using System.Windows.Forms;
    using Microsoft.Xna.Framework.Graphics;
     
    namespace WindowsFormsApplication4
    {
        public partial class Form1 : Form
        {
            GraphicsDevice graphicsDevice;
     
            public Form1()
            {
                InitializeComponent();
                PresentationParameters presentParams = new PresentationParameters();
                graphicsDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, DeviceType.Hardware, panel1.Handle, presentParams);
            }
     
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                graphicsDevice.Clear(Color.Black);
                //Affichage de la vidéo ici
                graphicsDevice.Present();
            }
        }
    }
    Malheureusement je crois qu'il n'y a pas de fonctionnalité en XNA pour afficher une vidéo, il faudrait que tu la décode toi même afin de l'afficher... Vu ce que tu veux faire, je pense que l'utilisation du Composant Media Player serait plus judicieux. D'autant de plus que c'est relativement simple.

    C'est un composant tout fait qu'il suffit d'ajouter. Marche à Suivre en ANGLAIS
    En gros :
    1. Clique droit sur la boite à outils (dans le groupe ou tu veux ajouter le composant), et sélectionne "Choisir les éléments".
    2. Sous l'onglet Composants COM, sélectionnez "Windows Media Player".
    3. Le tour est joué, normalement vous auriez le composant dans la boite à outils, prêt à être ajouter à ton prog.

    Voila, le choix reste le tiens, mais c'est rare que les gens se mette à écrire le propre outils de décodage vidéo, alors amuse toi avec Windows Media Player

  13. #13
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci beaucoup Ryants

    Je pense que je vais suivre ton conseil, d'ailleur ma démarche de base etait plutot accidentelle :

    Je dispose d'une application de gestion qui permet entre autre de lier des Photos a certaines informations.
    Hier en prenant quelques photos pour illustrer la maquette, j'ai accidentellement pris certaines photos en mode "Movie".
    Apres coup je me suis dit : Tiens se serait sympa aussi de permettre d'afficher l'AVI
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  14. #14
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut olivier

    Le mieux, c'est de prendre le VideoPlayer dans AudioVideoPlayback installé avec directX...

    avec, tu peux jouer du son et de la vidéo sans problème

    Et comme tu peux définir le Handle de la fenetre de rendu de ta video, cela peut très bien etre celle du la pictureBox (Pb.Handle )

    Un coucou en passant à Julien G... qui pourrait bien être mon stagiaire

    Ciao
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  15. #15
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut Nicolas

    Le mieux, c'est de prendre le VideoPlayer dans AudioVideoPlayback installé avec directX...
    C'etait ma premiere idée
    Mais il semble que les avis sont asser partagés entre WMP et le AudioVideoPlayback

    Je laisse dormir sur un coin de table pour le moment
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  16. #16
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Ca marche tres bien en mettant le Picturebox Owner du video

    Mais il faut faire attention au Size car le video prends la taille de l'avi et du coup le owner va prendre la taille du video l'exemple suivant marche au premier coup mais pour bien faire il faudrait fixer la taille du PB d'une maniere plus "propre"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using Microsoft.DirectX.AudioVideoPlayback;
     
     
    namespace TestDirectX
    {
      public partial class frmPBDirectX : Form
      {
        public frmPBDirectX()
        {
          InitializeComponent();
        }
     
        private void btnPlay_Click(object sender, EventArgs e)
        {
          Video vd=new Video("D:/projets/MapScopeNG/BelgPoster/photosrc/SDC10010.AVI");
          Size sz = new Size(pictureBoxTest.Width,pictureBoxTest.Height);
          vd.Owner = pictureBoxTest;
          vd.Size = sz;
          vd.Play();
        }
      }
    }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  17. #17
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Truc bizare avec Size
    Il y a quand meme un truc que je ne comprends pas bien avec la taille dans l'exemple précédent

    Si je fais tourner cette exemple dans une autre form avec un PB de Size(x,y)
    La video se positione bien sur le PB et a la taille de celui-ci.
    Par contre, j'ai une surface qui deborde en bottom right et qui vient encombrer ma fenetre de fond
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

Discussions similaires

  1. [Débutant] [C#]Charger une image dans une picture box
    Par Pas_d_Idee dans le forum Windows Forms
    Réponses: 6
    Dernier message: 21/09/2012, 01h05
  2. Probleme de dessin dans une Picture Box
    Par titou640 dans le forum C#
    Réponses: 0
    Dernier message: 12/03/2012, 16h14
  3. Oracle et BLOB pour image dans un picture Box
    Par gueulederack dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/09/2011, 15h21
  4. faire défiler image dans picture box
    Par cd090580 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/02/2007, 16h00
  5. dessin losange remplit dans un picture box
    Par scr dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/12/2005, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo