Я использую winmin api для обработки звука. Я использую waveInGetDeviceCaps
и waveInMessage
, чтобы однозначно идентифицировать «звуковую линию». Все работает отлично, за исключением того, что в Vista имя устройства ограничено 32 символами структурой WaveInCaps
.Можно ли связать одно и то же аудиоустройство в разных API?
Чтобы обойти это, я предполагаю использовать core api, когда версия ОС> = Vista. Я использую IMMDeviceEnumerator.GetDevice
и IMMDeviceEnumerator.EnumAudioEndpoints
для сбора информации о звуковой линии, но я не уверен, как сказать, что одно устройство под ядром api относится к одной записи под waveXx api.
Я думаю, что я мог бы сравнить путь к устройству обоих, но это противоречит рекомендации MS по трактовке строки пути устройства как «непрозрачной».
Что бы вы сказали?
Я думаю, что еще один способ, чтобы помочь ответить на мой вопрос: учитывая экземпляр IMMDevice, как я знаю, какой «индекс строки» (тот, который я могу использовать в качестве аргумента для waveInOpen например) связано с этой линией? –