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 :

Lecture de plusieurs sons simultanément


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut Lecture de plusieurs sons simultanément
    Bonjour,
    Je me suis mis récemment au C# et je m'attaque actuellement aux threads (je m'appuie sur cette documentation : HowTo.Thread.CSharp.I.pdf). Comme projet d'exemple, je souhaite créer une application dont l'interface se résume à une fenêtre avec 3 boutons :
    • Lancer la musique
    • Stopper la musique
    • Jouer un son

    Mon objectif est de pouvoir jouer un son, par dessus une musique de fond. J'arrive à jouer la musique, la stopper, mais lorsque je lance le son, ma musique se coupe. Inversement, lorsque je joue mon son et que pendant sa lecture je lance la musique, celle-ci coupe mon son pour être jouée.
    La lecture de la musique et du son sont tous les deux faits de la même manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    s = new System.Media.SoundPlayer();
    s.SoundLocation = "...";
    s.Play();
    Est-il possible d'avoir plusieurs SoundPlayer qui jouent en simultané ?
    Pensant que ce n'était pas le cas, j'ai essayé de me tourner vers Microsoft.DirectX.AudioVideoPlayback, mais impossible à utiliser depuis un thread : lorsque je clique sur Jouer un son, j'obtiens l'erreur suivante :
    La DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll' tente une exécution managée dans le verrou du chargeur du système d'exploitation. N'essayez pas d'exécuter du code managé dans une fonction d'initialisation d'image ou DIIMain, car cela risque d'entraîner un blocage de l'application.


    Dans ce cas, quelle serait la solution pour jouer un son depuis un thread ? Existe-t-il une meilleure solution que les threads pour jouer 2 sons simultanément ?

    Merci...

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    Impossible avec le SoundPlayer

    Par contre, tu références Microsoft.DirectX.AudioVideoPlayback.dll dans directX et puis tu utilises l'objet Audio (ou video si tu veux faire de la video)
    et basta... tu pourras en mettre XXX en simultané.. sans te prendre la tete
    avec l'utilisation de threads, etc ...

    The Monz, Toulouse

  3. #3
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut
    Parfait parfait parfait...
    J'ai réussi à jouer mes 2 sons en simultané sans le moindre problème.
    Merci beaucoup...

    Une question subsiste toutefois : pourquoi l'exécution en mode déboggage me provoque-t-elle un warning ? (... la DLL .../Microsoft.DirectX.dll ... tentative d'exécution managée dans le verrou gnagnagna...) C'est gênant si je n'en tiens pas compte ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    le soucis en debug peut venir d'une option de la fenetre de gestion des
    exceptions

    Une idée, demande à VS2005 (via la fenetre exception accessible via
    menu Debug->Exception (ou à rajouter via option->personnalisation) si pas
    présente dans ton menu) de ne gérer aucune exception (surtotu les MDA,
    Managed direct assistant si ma mémoire est bonne)

    Voilou

    Content que tu es réussie à faire ton bazar de multi son

    T'as vu en plus, qu'avec Audio, tu peux gérer le panoramique, volume et 2/3 autres bricoles ?

    (dommage que cela ne gère pas le son 3D, mais bon... )

    The Monz, Toulouse

  5. #5
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut
    Effectivement, ne gérer aucune exception évite le warning dans le mode debug

    J'ai pas encore regardé de très très près comment fonctionnait l'objet Audio (pour dire, je l'ai découvert en créant cette micro appli) mais c'est vrai que ça m'a l'air plutôt bien fourni. Pour le problème de la spatialisation du son, j'ai vu qu'il y avait un exemple dans la doc du SDK DirectX.

    Merci pour tout en tous cas.

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

Discussions similaires

  1. [MySQL] Problème de lecture sur plusieurs tables simultanément
    Par jonathanlafl dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/08/2010, 09h15
  2. Lecture de plusieurs sons wav selon les cas
    Par Ghunter59 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/12/2008, 22h21
  3. Jouer plusieurs son en simultane
    Par mastering dans le forum WinDev
    Réponses: 1
    Dernier message: 03/07/2008, 10h59
  4. Jouer plusieurs sons wav en simultanée
    Par inertia dans le forum MFC
    Réponses: 5
    Dernier message: 12/05/2005, 14h46
  5. [KeyEvent] plusieurs touches simultanées enfoncées
    Par gege2mars dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/01/2004, 11h44

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