IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

[VB.NET][WPF] Gérer l'audio avec 'MediaPlayer' [Débutant(e)]


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut [VB.NET][WPF] Gérer l'audio avec 'MediaPlayer'
    Bonjour,

    Pour pouvoir utiliser le mp3 dans mon application j'ai décidé d'utiliser 'MediaPlayer'
    Voici comment, basiquement, je l'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim backMusic as New MediaPlayer
    backMusic.Open(New Uri("sbgm0005.mp3", UriKind.Relative))
    backMusic.Volume = 0.1
    backMusic.Play()
    Et voici ma question:

    Comment puis-je faire pour gérer l’arrêt de la chanson?
    J'ai vu qu'il existait un évènement: 'MediaEnded', censé gérer la fin de la chanson...mais je ne vois pas comment le mettre en oeuvre (je suis...débutant ;-))

    Commenr donc puis je utiliser un handler pour détecter la fin de la chanson?

    D'avance merci pour toute aide que vous pourriez m'apporter!!

  2. #2
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Bonjour,

    en mode design, tu selectionnes ton mediaPlayer et tu vas dans les propriétés. Tu dois avoir un onglet Evenements ressemblant a un éclair et dedans tu dois avoir l'event mediaEnded.
    En double cliquant dessus, ça doit te créer directement la méthode et la lier.

    Tu as ensuite juste a créer le contenu de la méthode.

    Sinon dans ton xaml tu ajoutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MediaEnded="mediaElement1_MediaEnded"
    et dans le fichier vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void mediaElement1_MediaEnded(object sender, RoutedEventArgs e)
            {
     
            }

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim backMusic as New MediaPlayer
    AddHandler backMusic.MediaEnded, AddressOf backMusic_MediaEnded
    backMusic.Open(New Uri("sbgm0005.mp3", UriKind.Relative))
    backMusic.Volume = 0.1
    backMusic.Play()
     
     
    ...
     
    Private Sub backMusic_MediaEnded(ByVal sender As Object, ByVal e As EventArgs)
        ...
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim backMusic as New MediaPlayer
    AddHandler backMusic.MediaEnded, AddressOf backMusic_MediaEnded
    backMusic.Open(New Uri("sbgm0005.mp3", UriKind.Relative))
    backMusic.Volume = 0.1
    backMusic.Play()
     
     
    ...
     
    Private Sub backMusic_MediaEnded(ByVal sender As Object, ByVal e As EventArgs)
        ...
    End Sub
    tomlev,
    Merci pour ta réponse! J'ai juste un petit problème avec
    AddHandler backMusic.MediaEnded, AddressOf backMusic_MediaEnded
    Si je place cette ligne au début de la classe de ma fenètre (comme je le fais pour 'Dim backMusic As New MediaPlayer') j'ai une SyntaxError sur 'AddHandler'
    Si je place cette ligne plus loin, dans un sub, j'ai l'erreur suivante: backMusic.MediaEnded is not declared

    Merci pour ton aide

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Jayme65 Voir le message
    Si je place cette ligne au début de la classe de ma fenètre (comme je le fais pour 'Dim backMusic As New MediaPlayer') j'ai une SyntaxError sur 'AddHandler'
    Il faut la mettre dans une Sub, pas directement dans la classe

    Citation Envoyé par Jayme65 Voir le message
    Si je place cette ligne plus loin, dans un sub, j'ai l'erreur suivante: backMusic.MediaEnded is not declared
    Ca par contre c'est bizarre

    Montre un peu plus de code, avec l'extrait que tu as montré on ne voit pas la structure de ton programme...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Merci tomlev!!
    Je pense que j'ai trouvé:

    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
    Class MainWindow 
        Dim backMusic As New MediaPlayer
        Public Event MediaEnded As RoutedEventHandler
        Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
            AddHandler backMusic.MediaEnded, AddressOf backMusic_MediaEnded
            backMusic.Open(New Uri("Lasgo - Intro.mp3", UriKind.Relative))
            backMusic.Volume = 0.2
            backMusic.Play()
        End Sub
        Private Sub backMusic_MediaEnded(ByVal sender As Object, ByVal e As EventArgs)
            backMusic.Stop()
            backMusic.Position = TimeSpan.FromSeconds(0)
            backMusic.Play()
        End Sub
    End Class
    Mais j'en "veux" toujours bien l'explication ;-)
    Si tu as le temps, peux tu m'expliquer la "logique" derrière tout cela, la mécanique!!!...D'avance merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/12/2013, 09h39
  2. [Débutant] comment gérer des cookies avec ASP.NET
    Par amoula2511 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 14/05/2012, 00h16
  3. Réponses: 1
    Dernier message: 06/03/2007, 20h29
  4. Réponses: 13
    Dernier message: 16/04/2004, 12h00
  5. Gérer un moteur avec un 6809
    Par copro dans le forum Autres architectures
    Réponses: 5
    Dernier message: 05/04/2004, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo