У меня есть приложение для Windows, написанное на C # /. NET.
Как я могу воспроизвести определенный звук при нажатии кнопки?
У меня есть приложение для Windows, написанное на C # /. NET.
Как я могу воспроизвести определенный звук при нажатии кнопки?
Ответы:
Вы можете использовать:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
Вы можете использовать SystemSound , например, System.Media.SystemSounds.Asterisk.Play();
.
Для 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()
}
}
Это также будет работать с WPF, но у вас есть другие варианты, такие как использование MediaPlayer
страницы MSDN.
ButtonClick
просто потому, что кажется, что она больше соответствует стилю именования C #.
Это немного высокоуровневый ответ для приложений, которые хотят легко вписаться в среду Windows. Технические подробности воспроизведения определенного звука были предоставлены в других ответах. Кроме того, всегда обращайте внимание на эти два момента:
Используйте пять стандартных системных звуков в типичных сценариях , т.е.
Asterisk - играйте, когда хотите выделить текущее событие
Вопрос - играйте с вопросами (в окне системного сообщения воспроизводится этот)
Восклицательный знак - играйте со значком восклицания (его воспроизводит окно системного сообщения)
гудок (системный звук по умолчанию)
Критическая остановка («Рука») - игра с ошибкой (ее воспроизводит окно системного сообщения)
Методы класса System.Media.SystemSounds
сыграют их за вас.
Внедрите любые другие звуки, настраиваемые вашими пользователями в Sound панели управления
System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);
проигрывает звук Hand . Обратите внимание, что он воспроизводится асинхронно, здесь я добавил команду сна, чтобы дождаться завершения звука. Если вы не ждете и проиграете другой звук, предыдущий немедленно прекратится.
Приведенный ниже код позволяет воспроизводить 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);
Чтобы воспроизвести аудиофайл в форме 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. Нажмите кнопку и выберите аудиофайл. После загрузки файла будет воспроизводиться звук.
Надеюсь, этот пример будет полезен новичкам ...
Я думаю, вам нужно сначала добавить в Ресурсы файл .wav. Например, у вас есть звуковой файл с именем Sound.wav. После того, как вы добавили файл Sound.wav в Ресурсы, вы можете использовать этот код:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();
Это еще один способ воспроизведения звука.