J'ai une application Windows écrite en C # /. NET.
Comment puis-je jouer un son spécifique lorsqu'un bouton est cliqué?
J'ai une application Windows écrite en C # /. NET.
Comment puis-je jouer un son spécifique lorsqu'un bouton est cliqué?
Réponses:
Vous pouvez utiliser:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
Vous pouvez utiliser SystemSound , par exemple, System.Media.SystemSounds.Asterisk.Play();
.
Pour Windows Forms, une méthode consiste à 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()
}
}
Cela fonctionnera également avec WPF, mais vous avez d'autres options comme l'utilisation de la MediaPlayer
page MSDN
ButtonClick
, simplement parce qu'il semble qu'elle suive davantage le style de nommage C #.
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
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
player.FileName = "123.mp3";
player.Play();
depuis http://alvas.net/alvas.audio,samples.aspx#sample6 ou
Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);
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.
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 hander d'événement 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 lu.
J'espère que c'est un exemple utile pour les débutants ...
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 = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();
C'est une autre façon de jouer du son.