Как сделать внутренний звуковой сигнал компьютера на С# без внешних громкоговорителей?
Как я могу сделать звуковой сигнал компьютера в С#?
Ответ 1
В .Net 2.0 вы можете использовать Console.Beep().
// Default beep
Console.Beep();
Вы также можете указать частоту и длину звукового сигнала в миллисекундах.
// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);
Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx
Ответ 2
Вы также можете использовать относительно неиспользуемые:
System.Media.SystemSounds.Beep.Play();
System.Media.SystemSounds.Asterisk.Play();
System.Media.SystemSounds.Exclamation.Play();
System.Media.SystemSounds.Question.Play();
System.Media.SystemSounds.Hand.Play();
Документация по этим звукам доступна в http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx
Ответ 3
Console.Beep
Ответ 4
Попробуйте это
Console.WriteLine("\a")
Ответ 5
Подтверждено, что win7 и более поздние версии (не менее 64 бит или оба) доза не использует системный динамик, и вместо этого они перенаправляют вызов на звуковое устройство по умолчанию.
Итак, использование system.beep()
в win7/8/10 не будет звучать с использованием внутреннего динамика системы. Но вы получите звуковой сигнал из внешних громкоговорителей, если он доступен.
Ответ 6
Я просто наткнулся на этот вопрос, ища решение для себя. Вы можете подумать о вызове функции системного звукового сигнала, запустив некоторые файлы ядра32.
using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
public static extern bool Beep(int freq, int duration);
public static void TestBeeps()
{
Beep(1000, 1600); //low frequency, longer sound
Beep(2000, 400); //high frequency, short sound
}
Это то же самое, что вы запускали powershell:
[console]::beep(1000, 1600)
[console]::beep(2000, 400)