web-dev-qa-db-fra.com

Comment jouer un son en C #, .NET

J'ai une application Windows écrite en C #/.NET.

Comment puis-je jouer un son spécifique quand un bouton est cliqué?

104
Khilen Maniyar

Vous pouvez utiliser:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
204
bporter

Vous pouvez utiliser SystemSound , par exemple, System.Media.SystemSounds.Asterisk.Play();.

83
kd7

Pour Windows Forms, l’un des moyens consiste à utiliser la SoundPlayer

private void Button_Click(object sender, EventArgs e)
{
    using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav")) {
        soundPlayer.Play(); // can also use soundPlayer.PlaySync()
    }
}

page MSDN

Cela fonctionnera également avec WPF, mais vous avez d'autres options comme utiliser MediaPlayerpage MSDN

31
ChrisF

Information additionnelle.

Il s'agit d'une réponse un peu complexe pour les applications qui souhaitent s'intégrer parfaitement à l'environnement Windows. Des détails techniques relatifs à la lecture de sons particuliers ont été fournis dans d'autres réponses. Outre cela, notez toujours ces deux points:

  1. Utilisez cinq sons système standard dans des scénarios typiques , c.-à-d.

    • Asterisk - joue lorsque vous souhaitez mettre en surbrillance l'événement en cours

    • Question - jouez avec des questions (la fenêtre de la boîte de message système lit celle-ci)

    • Exclamation - Jouez avec l'icône Excalamation (la fenêtre de la boîte de message système lit celle-ci)

    • bip (son système par défaut)

    • Arrêt critique ("Main") - Lecture avec erreur (la fenêtre de la boîte de message système lit celle-ci)

    Méthodes de classe System.Media.SystemSounds les jouera pour vous.

  2. Implémentez tout autre son personnalisable par vos utilisateurs dans le panneau de configuration Son

    • De cette façon, les utilisateurs peuvent facilement modifier ou supprimer les sons de votre application et vous n'avez pas besoin d'écrire d'interface utilisateur pour cela - cela existe déjà.
    • Chaque profil utilisateur peut remplacer ces sons à sa manière
    • Comment:
      • Créez un profil sonore de votre application dans le registre Windows (Astuce: inutile de programmer, ajoutez simplement les clés dans le programme d'installation de votre application.)
      • Dans votre application, lisez le chemin du fichier son ou la ressource DLL à partir de votre clé de registre et lisez-le. (Comment jouer des sons que vous pouvez voir dans d'autres réponses.)
10
miroxlav

Le code ci-dessous permet de lire des fichiers mp3 et des fichiers wave en mémoire.

player.FileName = "123.mp3";
player.Play();

à partir de http://alvas.net/alvas.audio,samples.aspx#sample6 ou

Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);

à partir de http://alvas.net/alvas.audio,samples.aspx#sample7

8
Aleks

Pour lire un fichier audio sous la forme Windows en utilisant C #, vérifions un exemple simple comme suit:

1.Go Visual Studio (VS-2008/2010/2012) -> Menu Fichier -> cliquez sur Nouveau projet.

2.Dans le nouveau projet -> cliquez sur Application Windows Forms -> Donner un nom, puis cliquez sur OK.

Un nouveau projet "Windows Forms" va s'ouvrir.

3. Faites glisser et déposez un contrôle Button de la Boîte à outils vers le Windows Form.

4. Double-cliquez sur le bouton pour créer automatiquement le gestionnaire d'événements Click par défaut et ajoutez le code suivant.

Ce code affiche la boîte de dialogue Ouvrir un fichier et transmet les résultats à une méthode appelée "playSound" que vous créerez à l'étape suivante.

 OpenFileDialog dialog = new OpenFileDialog();
 dialog.Filter = "Audio Files (.wav)|*.wav";


if(dialog.ShowDialog() == DialogResult.OK)
{
  string path = dialog.FileName;
  playSound(path);
}

5. Ajoutez le code de méthode suivant sous le gestionnaire d'événements button1_Click.

 private void playSound(string path)
 {
   System.Media.SoundPlayer player = new System.Media.SoundPlayer();
   player.SoundLocation = path;
   player.Load();
   player.Play();
 }

6.Maintenant, exécutons l'application en appuyant simplement sur la touche F5 pour exécuter le code.

7.Cliquez sur le bouton et sélectionnez un fichier audio. Une fois le fichier chargé, le son sera joué.

J'espère que c'est un exemple utile pour les débutants ...

2

Je pense que vous devez d’abord ajouter un fichier .wav à Ressources. Par exemple, vous avez un fichier son nommé Sound.wav. Après avoir ajouté le fichier Sound.wav à Ressources, vous pouvez utiliser ce code:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();

C'est une autre façon de jouer du son.