Я использую winmm api для работы со звуком. Я использую waveInGetDeviceCaps
и waveInMessage
для однозначной идентификации «звуковой линии». Все работает нормально, за исключением того, что в Vista имя устройства ограничено 32 символами структурой WaveInCaps
.
Чтобы обойти это, я предполагаю использовать основной api, когда версия ОС> = Vista. Я использую IMMDeviceEnumerator.GetDevice
и IMMDeviceEnumerator.EnumAudioEndpoints
для сбора информации о звуковых линиях, но я не уверен, как определить, что одно устройство под основным api относится к одной записи под api waveXx.
Думаю, я мог бы сравнить путь к устройству обоих, но это противоречило бы рекомендации MS рассматривать строку пути к устройству как «непрозрачную».
Что бы вы сказали?