L'évènement ending sur une vidéo ne marche pas

pomedeterre Messages postés 4 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 8 novembre 2006 - 8 nov. 2006 à 16:26
Cipoli Messages postés 53 Date d'inscription mercredi 29 août 2007 Statut Membre Dernière intervention 31 mars 2010 - 27 oct. 2008 à 17:20
Bonjour,

Alors voila, j'ai un objet vidéo sur lequel j'ai un évenement ending et le gestionnaire d'évènement qui va avec...

Sauf que ça ne marche pas...
L'évènement n'est jamais rencontré en fait et je ne passe donc jamais dans le magnifique bout de code de mon évènement...

Si ça vous interresse voila un bout de code:

maVideo = new Video(monOpenF.FileName);
maVideo.Ending += new EventHandler(maVideo_Ending);
...
Et plus loin j'ai :
private void maVideo_Ending(object sender, EventArgs e)
{
   MessageBox.Show("Vidéo finie!");
}
...
Mais ça passe jamais dedans, l'évènement n'est jaais déclenché

Si vous avez des idées je suis preneur...
Merci à tous.

8 réponses

cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
8 nov. 2006 à 21:51
C pas clair ton affaire, d'abord, la classe Video, elle sort d'où, un objet COM encore?
Et juste comme ça, Ending veut dire en train de se terminer, y'aurait pas End tout cours (c juste une idée de même qui me sort).
Donne nous plus de détails

Bonne chance ...
[:D] @++
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
8 nov. 2006 à 21:56
Non, c'est une classe qui appartient à DirectX.
A vrai dire je ne vois pas trop pourquoi ça ne fonctionne pas, dumoins dans l'immédiat.

<hr size="2" />-Blog-
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
8 nov. 2006 à 21:59
J'ai pas regardé le contenu de l'article, mais peut-être qu'il pourrait t'aider...

<hr size="2" />-Blog-
0
pomedeterre Messages postés 4 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 8 novembre 2006
8 nov. 2006 à 22:22
Oui il s'agit bien d'une classe directX, plus précisément Microsoft.DirectX.AudioVideoPlayback.Video.

Les autres évènements possibles : Starting, Stopping ne fonctionnent pas non plus.

J'utilise le sdk DirectX d'octobre 2006, donc tout récent mais je me demande si le problème ne vient pas de la...

Je jette un oeil sur le lien et vous tiens au courant si j'ai quelque chose de bien à rajouter

Merci à vous.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pomedeterre Messages postés 4 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 8 novembre 2006
8 nov. 2006 à 22:43
Alors dans l'article en fait, si j'ai bien compris, les évènements ne fonctionnent tout simplement pas...

Par exemple pour remplacer le Stopping, il faut rajouter un timer qui teste régulièrement si la position
courante du fichier (Video.CurrentPosition) est supérieure à la durée effective du fichier(Video.Duration)....

Le code provenant de cet article:
privatevoid videoTimer(object sender, EventArgs e)
{
if (video.CurrentPosition >= video.Duration)
OnVideoEnd(sender, e);
}

Déjà que la position ourante du fichier dépasse sa durée, c'est assez surprenent....
De plus, si j'ai bien compris, le monsieur de l'article déconseille l'utilisation de AudioVideoPlayback,
notamment par le peu de possibilité que cela offre (je m'en étais déjà rendu compte)...

Je pense essayer de trouver quelque chose de mieux par la suite, j'ai envie de pouvoir créer un égaliseur, de pouvoir rajouter des effets, etc, donc AudioVideoPlayback ne va pas me le permettre... Pour info je réalise un lecteur audio/vidéo (du vu et revu je sais mais le mien est bien ). Je pense peut être le partager ici quand il sera fini ...

Bref en attendant je vais essayer ça et vous tiens au courant...
0
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
9 nov. 2006 à 01:21
Salut,
C'est assez surprenant, ça voudrait dire que la Managed Directx team n'a pas finalisé sa classe.
De toute façon, MDX (managed directx) est intérrompu à sa deuxième version. Maintenant, pour faire un truc aussi poussé que ce que tu veux faire, il faut checker du côté de DirectX natif avec DirectShow ou encore regarder du côté de XNA framework (qui prend le relais de mdx 2.0) http://learnxna.com/files/folders/xnatutorial/entry145.aspx

Ça nous fera plaisir voir ton code source finalisé et posté ici :)
Bonne chance...

[:D] @++
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
9 nov. 2006 à 07:03
Salut, XNA c'est surtout pour faire des jeux, on peut pas vraiment dire que ça remplace MDX pour les applications multimedia, du moins pour le moment.

Comme l'a dit Badrbadr, faut regarder du coté de DirectShow, Quartz.dll ( integré dans Windows ), DirectShowNet ( sur CodeProject ), DirectShowLib ( sur SourceForge ).
0
Cipoli Messages postés 53 Date d'inscription mercredi 29 août 2007 Statut Membre Dernière intervention 31 mars 2010
27 oct. 2008 à 17:20
Bonjour,
J'ai le même probleme que toi.
J'utilise Microsoft.DirectX.AudioVideoPlayback.Video et il est impossible de récuperer l'événément Ending.

Je voudrai savoir comment tu as contourner le problème.
Je travaille sous visual studio 2003.

Merci
0
Rejoignez-nous