Вопрос:
У меня есть приложение Windows, написанное на С#/. NET.
Как я могу воспроизвести определенный звук при нажатии кнопки?
Лучший ответ:
Вы можете использовать:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@»c:mywavfile.wav»); player.Play(); Ответ №1
Вы можете использовать SystemSound, например System.Media.SystemSounds.Asterisk.Play();.
Ответ №2
Для Windows Forms одним из способов является использование SoundPlayer
private void Button_Click(object sender, EventArgs e) { using (var soundPlayer = new SoundPlayer(@»c:WindowsMediachimes.wav»)) { soundPlayer.Play(); // can also use soundPlayer.PlaySync() } }
Это также будет работать с WPF, но у вас есть другие варианты, такие как использование MediaPlayer страница MSDN
Ответ №3
Дополнительная информация.
Это немного высокоуровневый ответ для приложений, которые хотят легко вписаться в среду Windows. Технические характеристики воспроизведения определенного звука были предоставлены в других ответах. Кроме того, всегда обратите внимание на эти две точки:
-
Используйте пять стандартных системных звуков в типичных сценариях, т.е.
-
Asterisk – воспроизведение, когда вы хотите выделить текущее событие
-
Вопрос – игра с вопросами (это окно окна системных сообщений)
-
Восклицание – играйте с символом excalamation (это окно окна системного сообщения)
-
Звуковой сигнал (системный звук по умолчанию)
-
Критическая остановка ( “Рука” ) – воспроизведение с ошибкой (это окно окна системных сообщений) |
Способы класса System.Media.SystemSounds будут воспроизводить их для вас.
-
-
Внедрение любых других звуков, настраиваемых вашими пользователями в панели управления звуком
- Таким образом, пользователи могут легко изменять или удалять звуки из вашего приложения, и вам не нужно писать какой-либо пользовательский интерфейс для этого – он уже существует.
- Каждый пользовательский профиль может переопределять эти звуки по-своему.
- Как к:
- Создать звуковой профиль вашего приложения в реестре Windows (Подсказка: нет необходимости в программировании, просто добавьте ключи в программу установки вашего приложения.)
- В вашем приложении прочитайте путь к звуковому файлу или DLL-ресурсу из своих разделов реестра и воспроизведите его. (Как играть звуки, которые вы можете видеть в других ответах.)
Ответ №4
Нижеприведенный код позволяет воспроизводить mp3 файлы и волновые файлы в памяти.
player.FileName = «123.mp3»; player.Play();
из http://alvas.net/alvas.audio,samples.aspx#sample6 или
Player pl = new Player(); byte[] arr = File.ReadAllBytes(@»in.wav»); pl.Play(arr);
из http://alvas.net/alvas.audio,samples.aspx#sample7
Ответ №5
Чтобы воспроизвести аудиофайл в форме Windows с помощью С#, проверьте простой пример следующим образом:
1.Go Visual Studio (VS-2008/2010/2012) → Меню “Файл” → “Новый проект”.
2. В новом проекте → щелкните “Приложение Windows Forms” → “Дать имя” и нажмите “ОК”.
Откроется новый проект Windows Forms.
3.Drag-and-Drop элемент управления Button из панели инструментов в форму Windows.
4. Дважды нажмите кнопку, чтобы автоматически создать обработчик события Click Click по умолчанию и добавить следующий код.
Этот код отображает диалоговое окно “Открыть файл” и передает результаты методу “playSound”, который вы создадите на следующем шаге.
OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = «Audio Files (.wav)|*.wav»; if(dialog.ShowDialog() == DialogResult.OK) { string path = dialog.FileName; playSound(path); }
5.Добавьте следующий код метода под обработчиком события button1_Click.
private void playSound(string path) { System.Media.SoundPlayer player = new System.Media.SoundPlayer(); player.SoundLocation = path; player.Load(); player.Play(); }
6. Теперь вы можете запустить приложение, просто нажав F5, чтобы запустить код.
7. Нажмите кнопку и выберите аудиофайл. После загрузки файла звук будет воспроизводиться.
Надеюсь, это полезный пример для новичков…
Ответ №6
Я думаю, что вы должны сначала добавить файл .wav к ресурсам. Например, у вас есть звуковой файл с именем Sound.wav. После добавления файла Sound.wav в раздел “Ресурсы” вы можете использовать этот код:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound); player.Play();
Это еще один способ воспроизведения звука.