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

Signaler
Messages postés
4
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
8 novembre 2006
-
Cipoli
Messages postés
53
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
31 mars 2010
-
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

Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008

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] @++
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
44
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-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
44
J'ai pas regardé le contenu de l'article, mais peut-être qu'il pourrait t'aider...

<hr size="2" />-Blog-
Messages postés
4
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
8 novembre 2006

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

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...
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008

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] @++
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
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 ).
Messages postés
53
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
31 mars 2010

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