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 Forms Discussion :

[VB.NET] Jouer un son Wav sans que la fenêtre se bloque


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut [VB.NET] Jouer un son Wav sans que la fenêtre se bloque
    Bonjour à tous,

    Je suis présentement dans le développement d'une application où j'aimerais mettre une musique de fond en arrière plan, pendant que l'utilisateur continue à utiliser le tout.

    J'ai fait une recheche sur internet, et j'ai trouvé le code suivant :


    Public Class Sound
    Declare Auto Function PlaySound Lib "winmm.dll" (ByVal name _
    As String, ByVal hmod As Integer, ByVal flags As Integer) As Integer

    Declare Auto Function PlaySound Lib "winmm.dll" (ByVal name _
    As Byte(), ByVal hmod As Integer, ByVal flags As Integer) As Integer


    End Class
    'Constantes pour le playsound
    Public Const SND_SYNC = &H0 ' play synchronously
    Public Const SND_ASYNC = &H1 ' play asynchronously
    Public Const SND_MEMORY = &H4 'Play wav in memory
    Public Const SND_ALIAS = &H10000 'Play system alias wav
    Public Const SND_NODEFAULT = &H2
    Public Const SND_FILENAME = &H20000 ' name is file name
    Public Const SND_RESOURCE = &H40004 ' name is resource name or atom
    Sound.PlaySound("Theme.wav", SND_MEMORY, SND_FILENAME)

    Le code utilise l'API winmm.dll afin de pouvoir jouer le fichier wav. Lorsque je lance l'application, la fenêtre apparait, et 3 secondes plus tard, le son se joue (Ce qui est normal car j'ai mis le Sound.PlaySound dans un timer). Lorsque le son débute, la fenêtre ne répond plus, mais le son continue à jouer.

    C'est une musique d'environ 4 minutes, donc je peux pas laisser sa comme sa =|

    J'aimerais savoir s'il est possible de faire jouer le son en même temps que l'on puisse utiliser l'application, car sinon sa ne sert à rien

    Pour ceux qui se demande pourquoi de la musique, c'est un projet scolaire, et je réalise un petit jeu fait en VB (C'est pas l'idéal, mais bon, on s'essaie =) )

    Merci de votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par défaut
    Bonjour,
    tu devrais utiliser les methodes du framework au lieu des API.
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Private sound As System.Media.SoundPlayer
    sound = New System.Media.SoundPlayer("MonSon.wav")
    sound.PlayLooping
    Pour arrêter le son :
    Voilà Bon Dev.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Petite question... Je développe présentement en .net 2003, et je n'ai pas trouvé la fonction Media.SoundPlayer du framework.

    Est-ce une classe intégrée à .net 2003, où est-ce qu'elle est seulement dans le 2005?

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Uniquement en .NET 2.0

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Par défaut
    Je ne connais plus tout les paramètres de cette API mais il me semble qu'il y en avait un pour indiquer que le son devait être joué "en arrière-plan" (SND_ASYNC ?).

    Si jamais ce n'est pas le cas, pourquoi ne pas simplement lancer le son dans un thread?

    EDIT : ou utiliser le composant fourni avec le framework que je ne connaissais pas non plus

Discussions similaires

  1. jouer un son (*.wav ou *.mid) avec python
    Par - Glop - dans le forum Programmation multimédia/Jeux
    Réponses: 18
    Dernier message: 22/02/2010, 19h38
  2. jouer un son WAV avec sndPlaySound ?
    Par gdlbb dans le forum C
    Réponses: 21
    Dernier message: 13/05/2006, 17h26
  3. Avec VBE, faire jouer un son .Wav
    Par francois1955 dans le forum Général VBA
    Réponses: 6
    Dernier message: 09/12/2005, 15h45
  4. Jouer plusieurs sons wav en simultanée
    Par inertia dans le forum MFC
    Réponses: 5
    Dernier message: 12/05/2005, 14h46
  5. Existe t'il un composant permettant de jouer un son wav?
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/06/2002, 14h10

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