Mam aplikację Windows napisaną w C # / .NET.
Jak mogę odtworzyć określony dźwięk po kliknięciu przycisku?
Mam aplikację Windows napisaną w C # / .NET.
Jak mogę odtworzyć określony dźwięk po kliknięciu przycisku?
Odpowiedzi:
Możesz użyć:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
Możesz na przykład użyć SystemSoundSystem.Media.SystemSounds.Asterisk.Play();
.
W przypadku Windows Forms jednym ze sposobów jest użycie 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()
}
}
Będzie to również działać z WPF, ale masz inne opcje, takie jak korzystanie ze MediaPlayer
strony MSDN
ButtonClick
, po prostu dlatego, że wydaje się, że bardziej odpowiada stylowi nazewnictwa C #.
To nieco wysokopoziomowa odpowiedź dla aplikacji, które chcą bezproblemowo dopasować się do środowiska Windows. Szczegóły techniczne grania poszczególnych dźwięków podano w innych odpowiedziach. Poza tym zawsze zwracaj uwagę na te dwa punkty:
Użyj pięciu standardowych dźwięków systemowych w typowych scenariuszach , tj
Gwiazdka - graj, gdy chcesz zaznaczyć aktualne wydarzenie
Pytanie - baw się pytaniami (w okienku komunikatów systemowych jest odtwarzane to)
Wykrzyknik - baw się ikoną wykrzyknika (w oknie komunikatów systemowych odtwarza się ten)
Sygnał dźwiękowy (domyślny dźwięk systemowy)
Krytyczne zatrzymanie („Ręka”) - gra z błędem (w oknie komunikatów systemowych jest odtwarzane to)
Metody klasowe System.Media.SystemSounds
zagrają je za Ciebie.
Zaimplementuj inne dźwięki, które użytkownicy mogą dostosować w panelu sterowania Dźwięk
System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);
odtwarza dźwięk Hand . Zauważ, że gra asynchronicznie, tutaj dodałem polecenie uśpienia, aby poczekać na zakończenie dźwięku. Jeśli nie zaczekasz i nie odtworzysz innego dźwięku, poprzedni natychmiast się zatrzyma.
Poniższy kod umożliwia odtwarzanie plików mp3 i plików Wave zapisanych w pamięci
player.FileName = "123.mp3";
player.Play();
z http://alvas.net/alvas.audio,samples.aspx#sample6 lub
Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);
Aby odtworzyć plik audio w formularzu Windows przy użyciu C #, sprawdźmy prosty przykład w następujący sposób:
1. przejdź do programu Visual Studio (VS-2008/2010/2012) -> menu Plik -> kliknij Nowy projekt.
2. W New Project -> kliknij Windows Forms Application -> Give Name, a następnie kliknij OK.
Otworzy się nowy projekt „Windows Forms”.
3. Przeciągnij i upuść kontrolkę Button z przybornika do formularza systemu Windows.
4. Kliknij dwukrotnie przycisk, aby automatycznie utworzyć domyślną procedurę obsługi zdarzeń Click, i dodaj następujący kod.
Ten kod wyświetla okno dialogowe Otwieranie pliku i przekazuje wyniki do metody o nazwie „playSound”, którą utworzysz w następnym kroku.
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Audio Files (.wav)|*.wav";
if(dialog.ShowDialog() == DialogResult.OK)
{
string path = dialog.FileName;
playSound(path);
}
5. Dodaj następujący kod metody pod instrukcją obsługi zdarzenia button1_Click.
private void playSound(string path)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = path;
player.Load();
player.Play();
}
6. Teraz uruchommy aplikację, naciskając klawisz F5, aby uruchomić kod.
7. Kliknij przycisk i wybierz plik audio. Po załadowaniu pliku zostanie odtworzony dźwięk.
Mam nadzieję, że jest to przydatny przykład dla początkujących ...
Myślę, że najpierw musisz dodać plik .wav do zasobów. Na przykład masz plik dźwiękowy o nazwie Sound.wav. Po dodaniu pliku Sound.wav do zasobów możesz użyć tego kodu:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();
To inny sposób odtwarzania dźwięku.