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

C# Discussion :

Lire un son .wav ou .mp3 le plus simplement possible


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2007
    Messages : 123
    Points : 53
    Points
    53
    Par défaut Lire un son .wav ou .mp3 le plus simplement possible
    Bonjour, je réalise un petit jeu en C# et j'aurais besoin de jouer des sons ou des musiques ! Pour l'instant, je voudrais que lorsqu'on passe la souris sur une picturebox, donc l'évènement MouseHover, cela joue un petit son.

    Ensuite j'aurais besoin de jouer une musique en continu pendant les phases de jeu.

    J'ai essayé Microsoft.DirectX.AudioVideoPlayback avec l'instaciation d'un Audio puis j'ai appelé la méthode .Play() mais cela ne marche pas, soit je me prends un LockLoader que je ne sais pas comment régler soit cela ne fait rien, pas de son.

    J'attends vos solutions, merci !

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 745
    Points : 8 529
    Points
    8 529
    Par défaut
    Essaye System.Media.SoundPlayer
    Mais je crois que ça ne lit que du wmv et/ou du wav

    sinon tu as regardé ici: http://morpheus.developpez.com/directxdotnet/#LIIB ?
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    décembre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2006
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Play wav files
     
     System.Media.SoundPlayer player = new SoundPlayer();
     player.SoundLocation = "c:\\test.wav";
     player.LoadAsync();
     player.PlayLooping();   //asynchronous (loop)playing in new thread
     Thread.Sleep(5000);
     player.Stop();
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    // Play MP3 files
     
    public class Player
    {
      private string _command;
      private bool isOpen;
     [DllImport("winmm.dll")]
    private static extern long mciSendString(string strCommand,StringBuilder strReturn,int iReturnLength, IntPtr hwndCallback);
     
    public Player()
     {
     
     }
    public void Close()
     {
      _command = "close MediaFile";
      mciSendString(_command, null, 0, IntPtr.Zero);
           isOpen=false;
     }
     
    public void Open(string sFileName)
     {
      _command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
      mciSendString(_command, null, 0, IntPtr.Zero);
      isOpen = true;
     }
     
    public void Play(bool loop)
     {
      if(isOpen)
      {
       _command = "play MediaFile";
       if (loop)
        _command += " REPEAT";
        mciSendString(_command, null, 0, IntPtr.Zero);
       }
     }
    }

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2007
    Messages : 123
    Points : 53
    Points
    53
    Par défaut
    Merci pour les fichiers .wav, j'arrive maintenant à les lire avec votre solution

    J'ai par contre le même problème qu'avant pour les MP3 en utilisant la classe Microsoft.DirectX.AudioVideoPlayback.Audio avec le tuto que the_badger_man m'a indiqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Audio BackSon = null;
    BackSon = new Audio(Environment.CurrentDirectory + @"\\sounds\Fear Factory - Descent.mp3");
    BackSon.Play();
    Ce code me fait une erreur "LoaderLock a été détecté", je ne sais pas ce que c'est et je ne sais pas comment ça se gère !

    Sinon pour ta solution, Razielone, j'ai une erreur à la ligne [DllImport("winmm.dll")] ("DllImport est un type ou un espace de nom non défini blabla"), d'ailleurs je ne comprends pas cette syntaxe, je n'ai jamais vu cette instruction.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2007
    Messages : 123
    Points : 53
    Points
    53
    Par défaut
    Bon j'ai réussi à faire fonctionner la solution MP3 de Razielone, il manquait using System.Runtime.InteropServices;

    Si quelqu'un connait la solution pour la classe Microsoft.DirectX.AudioVideoPlayback.Audio, cela m'intéresse de régler cette erreur de LoaderLock !!

  6. #6
    Membre expert
    Profil pro
    Inscrit en
    décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Essaie de décocher la case nommée Loader Lock, depuis la boite de dialogue Exceptions du menu Debug, sous Managed Debugging Assistants

    Ça doit juste être une option de débogage

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

Discussions similaires

  1. Lancer des fichiers son .wav ou mp3
    Par mcog2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/01/2012, 19h51
  2. Lire son wav ou mp3
    Par Dereck07 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/12/2011, 12h48
  3. Réponses: 1
    Dernier message: 18/12/2010, 23h30
  4. Lire un son WAV
    Par olivier1209 dans le forum Débuter avec Java
    Réponses: 19
    Dernier message: 26/08/2009, 03h14
  5. Lire un son .wav depuis un serveur ftp
    Par mimi51340 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 08/04/2008, 21h32

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