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

Développement Windows Discussion :

Lecture de plusieurs vidéos à la suite (BackGroundWorker)


Sujet :

Développement Windows

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 65
    Points : 54
    Points
    54
    Par défaut Lecture de plusieurs vidéos à la suite (BackGroundWorker)
    Bonjour,

    Je m'adresse à vous après avoir chercher de nombreuses heures...

    Je cherche à réaliser une application qui va lire plusieurs vidéos à la suite, le but est que ces vidéos s'enchaînent les unes après les autres.
    J'ai donc crée une méthode récursive qui va s'incrémenter afin de lire les bonnes vidéos les unes après les autres.

    Cependant mon problème vient du fait que la précédente vidéo étant chargé dans le lecteur, il me génere une exception du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Une exception non gérée du type 'System.AccessViolationException' s'est produite dans System.Windows.Forms.dll
     
    Informations supplémentaires*: Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.
    Mon Form contient 1 panel qui contient le lecteur Flash. (Initialisé au niveau desgin )

    Comment puis-je contourner ce problème ?

    Voici mon code :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    public SlideShow()
            {
                InitializeComponent();
                pc = new PlaylistContent();
                pc = Playlist.ReadPlaylistFile();
               // ShockwaveFlash = new AxShockwaveFlashObjects.AxShockwaveFlash();
               // this.Controls.Add(ShockwaveFlash);
                this.SlideShowTest(compteur);
     
     
            }
     
            private void SlideShowTest(int spot)
            {
     
                    Console.WriteLine("Compteur :"+spot);
                    if (FindType(pc.slides[spot]))
                    {
                        Console.WriteLine("Name File :" + pc.slides[spot].name_file);
                        this.panel_flash.Visible = true;
                        this.panel_media.Visible = false;
     
                        String moviePath = Application.StartupPath + @"\download\" + pc.slides[spot].name_file;
                        Console.WriteLine("Chemin : " + moviePath);
                        this.ShockwaveFlash.LoadMovie(0,moviePath);
                        this.ShockwaveFlash.Play();
     
     
     
                    }
                    else
                    {
                        this.panel_media.Visible = true;
                        this.panel_flash.Visible = false;
                        //MessageBox.Show("VIDEO"+slide.name_file);
                        this.WindowsMediaPlayer.URL = Config.path_library + pc.slides[spot].name_file;
                        this.WindowsMediaPlayer.Ctlcontrols.play();
     
                    }
     
            }
     
            public Boolean FindType(Slide slide)
            {
                if (slide.name_file.Contains("swf"))
                {
                    //envoie pour lecteur flash
                    return true;
                }
                else
                {
                    //envoie pour lecteur media
                    return false;
                }
     
            }
     
           private void ShockwaveFlash_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
            {
     
                Console.WriteLine("Fin flash");
                this.ShockwaveFlash.Stop();
                this.compteur++;
                this.SlideShowTest(compteur);
     
     
            }


    En espèrant que vous pourrez m'éclairer.

    Cordialement,

    Florian.

  2. #2
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Points : 2 211
    Points
    2 211
    Par défaut
    Bonjour,

    Difficile de répondre à cette question. Flash semble être le principal trouble-fête, mais on ne peut pas dire que la version COM du Windows Media Player soit également un modèle de stabilité. L'exception que vous obtenez me fait plus penser à une erreur liée à un accès parallèle à une même ressource, un peu comme lorsqu'on souhaite modifier une UI depuis un thread séparé.

    Une solution serait de supprimer les composants COM à la fin de chaque lecture pour les recréer au prochain film. C'est une solution extrême pas très jolie, mais si cela marche, le problème doit venir du fait que vous embarquer à la fois Flash et WMP dans la même application/fenêtre.

    Bien cordialement.

Discussions similaires

  1. [C#] Lancer plusieurs commandes à la suite
    Par hobotalker dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/06/2006, 16h02
  2. [c#]Lecture de DVD vidéo
    Par Sylvain059 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/05/2006, 21h05
  3. Réponses: 12
    Dernier message: 30/12/2005, 11h55
  4. lecture de plusieurs port en même temps
    Par manaboko dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 15h26
  5. [nouveau] saisir plusieurs espace de suite ou tabuler
    Par siuol dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 28/02/2005, 12h32

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