C'est la réponse parfaite car un nouvel utilisateur peut comprendre que SoundPlayer appartient à System.Media ....
Khilen Maniyar
31
@Ali ... stackoverflow.com/questions/2361857/what-does-means-in-c-sharp "Cela signifie interpréter la chaîne suivante comme littérale. Cela signifie que le \ dans la chaîne sera en fait un" \ "dans le sortie, plutôt que d'avoir à mettre "\\" pour signifier le caractère littéral "
Praveen
La réponse de @ Praveen vient de donner un autre fait informatif. Merci à Dexter d'avoir demandé ce symbole "@".
Allen Linatoc
2
@bporter, cela ne semble pas fonctionner avec les fichiers mp3; il est limité au format wav uniquement
Najeeb
Quel dommage cette API! Il ne lit ni les fichiers MP3 ni les fichiers MIDI. Complètement inutile pour moi. Windows a un support natif pour MP3 et MIDI depuis au moins Windows XP. Honte à Microsoft!
Elmue
91
Vous pouvez utiliser SystemSound , par exemple, System.Media.SystemSounds.Asterisk.Play();.
très utile. cela peut aider à utiliser les valeurs par défaut du système.
Babak.Abad
4
Il est important de noter que si vous désactivez les sons du système dans les paramètres de Windows (au moins Windows plus récent), il ne lit rien.
Artholl
32
Pour Windows Forms, une méthode consiste à utiliser le SoundPlayer
privatevoidButton_Click(object sender,EventArgs e){
using (var soundPlayer =newSoundPlayer(@"c:\Windows\Media\chimes.wav")){
soundPlayer.Play();// can also use soundPlayer.PlaySync()}}
Mieux encore, 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
Je renommerais cette fonction en ButtonClick, simplement parce qu'il semble qu'elle suive davantage le style de nommage C #.
Ethan Bierlein
1
@EthanBierlein - c'était probablement la convention de dénomination quand j'ai posté la réponse;)
ChrisF
1
Huh. C'était donc l'ancienne convention?
Ethan Bierlein
@EthanBierlein, c'est toujours ce qui est généré automatiquement par les projets Windows Forms de Visual Studio
JAD
13
Information additionnelle.
C'est une réponse un peu de haut niveau pour les applications qui souhaitent s'intégrer de manière transparente dans l'environnement Windows. Des détails techniques sur la lecture d'un son particulier ont été fournis dans d'autres réponses. En plus de cela, notez toujours ces deux points:
Utilisez cinq sons système standard dans des scénarios typiques , c.-à-d.
Astérisque - jouez lorsque vous souhaitez mettre en évidence l'événement en cours
Question - jouer avec les questions (la fenêtre de la boîte de message système lit celle-ci)
Exclamation - jouer avec l'icône d'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") - jouer avec erreur (la fenêtre de la boîte de message système lit celle-ci)
Mettre en œuvre des autres sons comme personnalisable par vos utilisateurs dans son panneau de commande
De cette façon, les utilisateurs peuvent facilement modifier ou supprimer des sons de votre application et vous n'avez pas besoin d'écrire d'interface utilisateur pour cela - elle est déjà là
Chaque profil utilisateur peut remplacer ces sons à sa manière
Dans votre application, lisez le chemin du fichier audio ou la ressource DLL à partir de vos clés de registre et lisez-le. (Comment jouer des sons que vous pouvez voir dans d'autres réponses.)
Merci pour ces informations supplémentaires. Je voudrais ajouter un exemple: System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);joue la main sonore . Notez qu'il joue de manière asynchrone, ici j'ai ajouté une commande de veille pour attendre la fin du son. Si vous n'attendez pas et jouez un autre son, le précédent s'arrête immédiatement.
Matt
8
Le code ci-dessous permet également de lire des fichiers mp3 et des fichiers wave en mémoire
Pour lire un fichier audio sous la forme Windows en utilisant C #, vérifions l'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 -> Donnez un nom, puis cliquez sur OK.
Un nouveau projet "Windows Forms" s'ouvre.
3.Faites glisser et déposez un contrôle Button de la boîte à outils vers le 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 d'ouverture de fichier et transmet les résultats à une méthode nommée «playSound» que vous créerez à l'étape suivante.
Je pense que vous devez d'abord ajouter un fichier .wav aux ressources. Par exemple, vous avez un fichier audio nommé Sound.wav. Après avoir ajouté le fichier Sound.wav aux ressources, vous pouvez utiliser ce code:
System.Media.SoundPlayer player =newSystem.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();
Vous pouvez utiliser SystemSound , par exemple,
System.Media.SystemSounds.Asterisk.Play();
.la source
Pour Windows Forms, une méthode consiste à utiliser le
SoundPlayer
Page MSDN
Cela fonctionnera également avec WPF, mais vous avez d'autres options comme l'utilisation de la
MediaPlayer
page MSDNla source
ButtonClick
, simplement parce qu'il semble qu'elle suive davantage le style de nommage C #.Information additionnelle.
C'est une réponse un peu de haut niveau pour les applications qui souhaitent s'intégrer de manière transparente dans l'environnement Windows. Des détails techniques sur la lecture d'un son particulier ont été fournis dans d'autres réponses. En plus de cela, notez toujours ces deux points:
Utilisez cinq sons système standard dans des scénarios typiques , c.-à-d.
Astérisque - jouez lorsque vous souhaitez mettre en évidence l'événement en cours
Question - jouer avec les questions (la fenêtre de la boîte de message système lit celle-ci)
Exclamation - jouer avec l'icône d'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") - jouer avec erreur (la fenêtre de la boîte de message système lit celle-ci)
Les méthodes de classe
System.Media.SystemSounds
les joueront pour vous.Mettre en œuvre des autres sons comme personnalisable par vos utilisateurs dans son panneau de commande
la source
System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);
joue la main sonore . Notez qu'il joue de manière asynchrone, ici j'ai ajouté une commande de veille pour attendre la fin du son. Si vous n'attendez pas et jouez un autre son, le précédent s'arrête immédiatement.Le code ci-dessous permet également de lire des fichiers mp3 et des fichiers wave en mémoire
depuis http://alvas.net/alvas.audio,samples.aspx#sample6 ou
depuis http://alvas.net/alvas.audio,samples.aspx#sample7
la source
Pour lire un fichier audio sous la forme Windows en utilisant C #, vérifions l'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 -> Donnez un nom, puis cliquez sur OK.
Un nouveau projet "Windows Forms" s'ouvre.
3.Faites glisser et déposez un contrôle Button de la boîte à outils vers le 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 d'ouverture de fichier et transmet les résultats à une méthode nommée «playSound» que vous créerez à l'étape suivante.
5.Ajoutez le code de méthode suivant sous le hander d'événement button1_Click.
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 lu.
J'espère que c'est un exemple utile pour les débutants ...
la source
Je pense que vous devez d'abord ajouter un fichier .wav aux ressources. Par exemple, vous avez un fichier audio nommé Sound.wav. Après avoir ajouté le fichier Sound.wav aux ressources, vous pouvez utiliser ce code:
C'est une autre façon de jouer du son.
la source