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



Как сделать внутренний динамик компьютера звуковой сигнал в C# без внешних динамиков?

902   6  

6 ответов:

в .Net 2.0 можно использовать консоль.Звуковой сигнал.)(

// 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

вы также можете использовать относительно неиспользованных:

    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

попробуй такое

Console.WriteLine("\a")

подтверждено, что win7 и более новые версии(по крайней мере 64 бит или оба) доза не использовать системный динамик и вместо этого перенаправляет вызов на Звуковое устройство по умолчанию.

Итак,Используя system.beep() в win7 / 8 / 10 не будет звучать с помощью внутреннего системного динамика. Но вы получите звуковой сигнал от внешних динамиков, если он доступен.

Я просто наткнулся на этот вопрос при поиске решения для себя. Вы можете рассмотреть возможность вызова функции system beep, запустив некоторые материалы kernel32.

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)

Comments

    Ничего не найдено.