Как воспроизвести звук в C #, .NET - PullRequest
100 голосов
/ 17 августа 2010

У меня есть приложение Windows, написанное на C # /. NET.

Как я могу воспроизводить определенный звук при нажатии кнопки?

Ответы [ 6 ]

201 голосов
/ 17 августа 2010

Вы можете использовать:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
80 голосов
/ 17 августа 2010

Вы можете использовать SystemSound , например, System.Media.SystemSounds.Asterisk.Play();.

30 голосов
/ 17 августа 2010

Для Windows Forms одним из способов является использование 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-страницы

Это также будет работать с WPF, но у вас есть другие вариантыкак при использовании MediaPlayer MSDN page

10 голосов
/ 07 июля 2015

Дополнительная информация.

Это высокоуровневый ответ для приложений, которые хотят органично вписаться в среду Windows. Технические подробности воспроизведения конкретного звука были предоставлены в других ответах.Кроме того, всегда отмечайте следующие два момента:

  1. Используйте пять стандартных системных звуков в типичных сценариях , т.е.

    • Звездочка - играть, когда вы хотите выделить текущее событие

    • Вопрос - играть с вопросами (окно с системным сообщением воспроизводит это)

    • Exclamation - играть со значком восклицательного знака (окно с системным сообщением воспроизводит этот значок)

    • Beep (системный звук по умолчанию)

    • Критическая остановка («Рука») - играть с ошибкой (окно с системным сообщением воспроизводит это)

    Методы класса System.Media.SystemSounds будут воспроизводить их для вас.

  2. Реализуйте любые другие звуки, настраиваемые с помощьюваши пользователи в Звук панель управления

    • Таким образом, пользователи могут легко изменять или удалять звуки из вашего приложения, и вам не нужно писать какие-либопользовательский интерфейс для этого - он уже есть
    • Каждый профиль пользователя может переопределить эти звуки по-своему
    • Инструкции:
      • Создать звуковой профиль вашего приложенияв реестре Windows (Подсказка: не нужно программировать, просто добавьте ключи в установщик вашего приложения.)
      • В вашем приложении считайте путь к звуковому файлу или ресурс DLL из ваших ключей реестра и воспроизведите его.,(Как играть звуки вы можете увидеть в других ответах.)
8 голосов
/ 01 февраля 2014

Код ниже позволяет воспроизводить 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

2 голосов
/ 19 апреля 2017

Чтобы воспроизвести аудиофайл в форме Windows, используя C #, давайте проверим простой пример следующим образом:

1.Перейти в Visual Studio (VS-2008/2010/2012) -> Меню «Файл» -> нажать «Новый проект».

2.В новом проекте -> щелкните Приложение Windows Forms -> Дать имя и нажмите кнопку ОК.

Откроется новый проект «Windows Forms».

3. Перетащите элемент управления Button с панели инструментов в форму Windows.

4. Дважды нажмите кнопку, чтобы автоматически создать обработчик события 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.Нажмите кнопку и выберите аудиофайл. После загрузки файла будет воспроизводиться звук.

Надеюсь, это полезный пример для начинающих ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...