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 :
Mon Form contient 1 panel qui contient le lecteur Flash. (Initialisé au niveau desgin )
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.
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.
Partager