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

Messages postés
4
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
8 novembre 2006
- - Dernière réponse : 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.
Afficher la suite 

8 réponses

Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
0
Merci
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] @++
Commenter la réponse de cs_badrbadr
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42
0
Merci
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-
Commenter la réponse de cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42
0
Merci
J'ai pas regardé le contenu de l'article, mais peut-être qu'il pourrait t'aider...

<hr size="2" />-Blog-
Commenter la réponse de cs_Bidou
Messages postés
4
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
8 novembre 2006
0
Merci
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.
Commenter la réponse de pomedeterre
Messages postés
4
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
8 novembre 2006
0
Merci
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...
Commenter la réponse de pomedeterre
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
0
Merci
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] @++
Commenter la réponse de cs_badrbadr
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
0
Merci
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 ).
Commenter la réponse de Lutinore
Messages postés
53
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
31 mars 2010
0
Merci
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
Commenter la réponse de Cipoli