Проверьте, есть ли в системе звук C # - PullRequest
6 голосов
/ 13 апреля 2011

В настоящее время мы разрабатываем игру с использованием XNA, и мы столкнулись с небольшой проблемой со звуком.

Когда в систему не подключено звуковое устройство (динамики и т. Д. - когда Win7 показывает красный крестик на значке динамика), происходит сбой при попытке воспроизведения / загрузки звука.

Итак, мы хотели бы проверить, имеет ли система возможность вывода звука. Возможно ли это в C #?

Ответы [ 2 ]

6 голосов
/ 13 апреля 2011

Вы уверены, что это на самом деле сбой, а не просто генерирование необработанного исключения?

Теоретически это должно выдать NoAudioHardwareException.

Попробуйте сделать что-то со звуком (SoundEffect.MasterVolume приходит на ум как возможность, так как это статический метод) и посмотреть, можете ли вы поймать исключение.Если вы поймали исключение, просто больше не работайте со звуком.

0 голосов
/ 09 октября 2012

Я думаю, это поможет .........

[DllImport("winmm.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern long GetNumDevs();
private void Button1_Click(System.Object sender, System.EventArgs e)
{
    long I = 0;
    I = GetNumDevs();
    if (I > 0) {
        Interaction.MsgBox("Your system can play sound files.");
    } else {
        Interaction.MsgBox("Your system can not play sound files.");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...