Lecture vidéo Media Player dans Userform, puis fermeture automatique

Hello,

J'ai un userform avec une vidéo Media Player, qui à l'ouverture de cet userform commencera la lecture, en mode plein écran.
Mon problème est que je souhaiterais automatiquement fermer cet userform dès que cette vidéo est terminée : pourquoi ça ne fonctionne pas ?

Merci d'avance pour votre aide.

Ci-dessous le codes utilisé :

Private Sub UserForm_Activate()

 WindowsMediaPlayer1.Url = "C:\videotest.mp4"

WindowsMediaPlayer1.Controls.Play

End Sub

Private Sub WindowsMediaPlayer1_PlayStateChange(ByVal NewState As Long)

If NewState = 3 Then WindowsMediaPlayer1.fullScreen = True

End Sub

Private Sub WindowsMediaPlayer1_StatusChange()

If WindowsMediaPlayer1.Status = "Stopped" Then Unload Me

End Sub

Bonjour,

Je ne sais pas si vous avez vu, mais l'aide en ligne recommande d'utiliser l'objet MediaPlayer Class (Windows.Media.Playback) - Windows apps | Microsoft Learn plutot que WMP qui est obsolète.

Plutot que d'utiliser le .Status, je vous propose d'utiliser la propriété Player.playState | Microsoft Learn.

D'après la doc, quand le média se termine, la propriété est égale à 8. Donc votre code deviendrait :

Private Sub WindowsMediaPlayer1_StatusChange()
    If WindowsMediaPlayer1.playState = 8 Then Unload Me
End Sub

Bonjour et merci saboh12617 pour la réponse...je vais faire des recherches sur ce MediaPlayer Class.

Je n'ai jamais utilisé ces librairies, en plus j'ai vu qu'il n'y a pas trop d'exemples en VB avec la nouvelle classe malheureusement.

Après, la proposition que je vous ai faite est avec la librairie que vous utilisez actuellement 😉

Effectivement, ça fonctionne en utilisant ce code dans l'évènement "StatusChange", si et seulement si :

1) "Me.Hide" est utilisé en lieu et place de "Unload Me", sinon mon Excel plante

2) le code ci-dessous écrit dans un module de classe, puis je lance cette macro.
Sans cela, le code dans "StatusChange" n'a pas le même impact, et ça ne fonctionnera pas.

Je comprends pas à 100% les raisons derrière ça, mais peu importe, ça fonctionne maintenant comme je voulais...merci encore !!

    With New UserForm1
        Set MoviePlayer = .WindowsMediaPlayer1
        MoviePlayer.Url = "C:\MaVidéo.mp4"
        MoviePlayer.uiMode = "None"
        MoviePlayer.stretchToFit = True
        MoviePlayer.Top = .Top + 1
        MoviePlayer.Left = .Left + 1
        MoviePlayer.Height = .InsideHeight - 2
        MoviePlayer.Width = .InsideWidth - 2
        MoviePlayer.Controls.Play
        .Show
    End With

Cela bug surement car vous utilisez la syntaxe "With New UserForm1". Si vous le supprimez en cours de route, le With se retrouve "Sans rien". C'est juste une hypothèse, je n'ai pas testé.

Content que votre problème soit résolu.

Rechercher des sujets similaires à "lecture video media player userform puis fermeture automatique"