2010-08-17 17 views

Répondre

157

Vous pouvez utiliser:

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

Ceci est une réponse parfaite, car un nouvel utilisateur peut comprendre que SoundPlayer appartient à System.Media .... –

+1

Qu'est-ce que @ for? –

+16

@Ali ... http://stackoverflow.com/questions/2361857/what-does-means-in-c-sharp "Cela signifie interpréter la chaîne suivante comme littérale. un "\" dans la sortie, plutôt que d'avoir à mettre "\\" pour signifier le caractère littéral " – Praveen

28

Pour Windows Forms une façon est d'utiliser le 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() 
    } 
} 

MSDN page

Cela permettra également de travailler avec WPF, mais vous avez d'autres options comme l'utilisation MediaPlayerMSDN page

+1

Devrait probablement être enveloppé dans une instruction 'using' car il hérite de' Component' – cjk

+0

@ck - Je montrais juste les bases, mais oui dans le code de production envelopper dans un 'using'. – ChrisF

+1

Encore mieux, dans le code de production, créez-le une seule fois et utilisez-le plusieurs fois plutôt que de le créer chaque fois que vous appuyez sur le bouton. – Shibumi

63

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

+4

+1 cool, je ne savais pas que –

+0

+1 pour utiliser des instances intégrées similaires à 'SystemColors'. – Shibumi

+0

très utile. cela peut aider à utiliser les paramètres par défaut du système. –

7

Informations supplémentaires.

Ceci est une réponse de haut niveau pour les applications qui veulent s'intégrer parfaitement dans l'environnement Windows. Les détails techniques de la lecture d'un son particulier ont été fournis dans d'autres réponses. En outre, notez toujours ces deux points:

  1. Utilisez cinq système standard Les sons dans les scénarios typiques, à savoir

    • Asterisk - jouer quand vous voulez souligner l'événement en cours

    • Question - jouer avec des questions (la fenêtre de boîte de message du système joue celui-ci)

    • Exclamation - jouer avec l'icône de excalamation (fenêtre de boîte de message système joue celui-ci)

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

    • Arrêt critique ("main") - jouer avec l'erreur (fenêtre de boîte de message système joue celui-ci)

    Les méthodes de la classe System.Media.SystemSounds les liront pour vous.

  2. Mettre en oeuvre des autres sons comme personnalisable par vos utilisateurs dans son panneau de commande

    • Ainsi, les utilisateurs peuvent facilement changer ou supprimer des sons de votre application et vous n'avez pas besoin d'écrire de interface utilisateur pour cela - il est déjà là
    • Chaque profil utilisateur peut remplacer ces sons à sa manière
    • Comment:
      • Create sound profile of your application in the Windows Registry (Conseil: pas besoin de programmation, il suffit d'ajouter les clés dans l'installateur de votre application.)
      • Dans votre application, lisez le chemin du fichier son ou ressource DLL à partir de vos clés de registre et jouer. (Comment jouer les sons que vous pouvez voir dans d'autres réponses.)
2

Pour lire un fichier audio sous forme Windows en utilisant C# Vérifions 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 le nom, puis cliquez sur OK.

Un nouveau projet "Windows Forms" s'ouvrira. 3.Drag-and-Drop un contrôle de bouton de la boîte à outils au formulaire Windows.

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 nommé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 dans le gestionnaire d'événements button1_Click. 6. Maintenant, exécutons l'application en appuyant simplement sur F5 pour exécuter le code.

7.Cliquez sur le bouton et sélectionnez un fichier audio. Après le chargement du fichier, le son sera lu.

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