Получите полное имя waveIn устройства

Я склонен быть нацеленным на ИНФОРМАЦИЮ к пользователю, чтобы дать им сообщения, которые не являются даже предупреждениями. ОТЛАДКА имеет тенденцию быть для использования разработчика где я выходные сигналы, чтобы помочь проследить поток через код (со значениями переменных также).

мне также нравится другой уровень ОТЛАДКИ (DEBUG2?), который дает абсолютный bucketloads отладочной информации, такой как шестнадцатеричные дампы всех буферов и так далее.

12
задан Mark Heath 19 September 2009 в 18:22
поделиться

1 ответ

Да, есть обходной путь. Я несколько раз решал эту проблему в коде поставки.

Перечислить устройства захвата звука с помощью DirectSoundCapture. API - это DirectSoundCaptureEnumerate. Он вернет вам полное имя устройств.

Конечно, вы, вероятно, думаете: «Отлично, но остальная часть моего кода настроена на использование Wave API, а не DirectSound. Я не хочу Так как же мне сопоставить идентификаторы GUID, возвращаемые DirectSoundCaptureEnumerate, с целочисленными идентификаторами, используемыми API WaveIn? »

Решение - использовать CoCreateInstance для объекта DirectSoundPrivate (или вызвать GetClassObject непосредственно из dsound. dll), чтобы получить указатель на интерфейс IKsPropertySet. Из этого интерфейса можно получить сопоставление идентификатора GUID DSound и идентификатора волны. Дополнительные сведения см. На этой веб-странице:

http://msdn.microsoft.com/en-us/library/bb206182 (VS.85) .aspx

Вы хотите использовать DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING, как описано на веб-странице перечислено выше.

8
ответ дан 2 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: