2009-12-18 1 views
2

Я использую winmin api для обработки звука. Я использую waveInGetDeviceCaps и waveInMessage, чтобы однозначно идентифицировать «звуковую линию». Все работает отлично, за исключением того, что в Vista имя устройства ограничено 32 символами структурой WaveInCaps.Можно ли связать одно и то же аудиоустройство в разных API?

Чтобы обойти это, я предполагаю использовать core api, когда версия ОС> = Vista. Я использую IMMDeviceEnumerator.GetDevice и IMMDeviceEnumerator.EnumAudioEndpoints для сбора информации о звуковой линии, но я не уверен, как сказать, что одно устройство под ядром api относится к одной записи под waveXx api.

Я думаю, что я мог бы сравнить путь к устройству обоих, но это противоречит рекомендации MS по трактовке строки пути устройства как «непрозрачной».

Что бы вы сказали?

+0

Я думаю, что еще один способ, чтобы помочь ответить на мой вопрос: учитывая экземпляр IMMDevice, как я знаю, какой «индекс строки» (тот, который я могу использовать в качестве аргумента для waveInOpen например) связано с этой линией? –

ответ

3

Этот сценарий описан в http://msdn.microsoft.com/en-us/library/dd370819(VS.85).aspx

+0

Отлично! Это поможет мне и другим вещам, например, получить руководство этой конкретной конечной точки. –

+0

Что значит «руководство от этой конечной точки»? Вы имеете в виду DSound GUID? Это доступно в PKEY_AudioEndpoint_GUID. Вы также можете использовать http://msdn.microsoft.com/en-us/library/ms790392.aspx DRV_QUERYDEVICEINTERFACE и DRV_QUERYENDPOINTID для получения идентификатора конечной точки для заданного идентификатора волны или микшера. –

+0

Право, которое я уже делаю по другим причинам. Большая картина здесь заключается в следующем: я разрабатываю мультимедийную среду для захвата звука на основе API waveInXxx. Сначала мне пришлось связать данную строку ввода с ее аудиоустройством (setupAPI), и для этого я использую DRV_QUERYDEVICEINTERFACE. Проблема, с которой я сталкиваюсь с waveInXxx api, заключается в том, что она усекает имя устройства под Vista, поэтому я обращаюсь к прямому звуку, чтобы получить это полное имя. –

 Смежные вопросы

  • Нет связанных вопросов^_^