Directshow.net не обнаруживает все микрофоны в Windows 7

У меня проблемы с библиотекой Directshow.net и Windows 7.

На некоторых ПК (только если в «Диспетчере устройств» > «Контроллеры звука, видео» указано: «Аудиоустройство высокой четкости») обнаруживается только 1 микрофон, когда в Skype, MSN и записывающих устройствах указано как минимум два; при выполнении этого кода:

Filter audioDevice = null;
if (capture != null)
audioDevice = capture.AudioDevice;

«audioDevice» имеет только первый микрофон (внутренний микрофон или задний микрофон) и не извлекает второй микрофон (передний микрофон -jack-) или наоборот.

Кто-то решил или знает другую библиотеку для захвата видео и аудио с С#??


person gokuhs    schedule 19.11.2012    source источник


Ответы (1)


Здесь мало что нужно решить. DirectShow.NET использует DirectShow, который, в свою очередь, использует Фильтр захвата аудио, использующий устаревшие API-интерфейсы для захвата аудио. Вместо этого Skype использует WASAPI, новейший и лучший API захвата звука в Windows Vista+ (откат к более старым API в Windows XP-).

Доступен только один обходной путь: написать собственный фильтр захвата звука, поддерживаемый WASAPI.

person Roman R.    schedule 19.11.2012
comment
ммм, спасибо за ответ. Вы знаете, где я могу начать искать фильтр аудиозахвата? - person gokuhs; 19.11.2012
comment
Вы вряд ли сможете сделать это в .NET, поскольку API являются нативными. Вам потребуется Windows SDK и образцы оттуда. PushSource — типичный образец для тех, кто хочет вводить данные в конвейер DirectShow. - person Roman R.; 19.11.2012