Поделиться через


Настройка свойств записи звука

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Каждый входной контакт в фильтре записи звука предоставляет интерфейс IAMAudioInputMixer . Используйте этот интерфейс для включения или отключения определенных входных данных путем вызова метода IAMAudioInputMixer::p ut_Enable в контакте. Кроме того, используйте этот интерфейс для задания свойств входных данных, таких как уровни баса, высоких частот и громкости. При одновременном захвате нескольких входных данных можно управлять общими уровнями баса, частоты и громкости с помощью интерфейса IAMAudioInputMixer в самом фильтре.

Доступные частоты дискретизации и аудиоформаты для записи определяются драйвером. Используйте интерфейс IAMStreamConfig на выходе фильтра записи звука, чтобы перечислить доступные частоты выборки и форматы и задать нужный формат. Фильтр может подключаться к любому фильтру, который принимает тип носителя выходного контакта.

Фильтр записи звука также предоставляет интерфейс IAMBufferNegotiation . Этот интерфейс полезен для управления задержкой при предварительном просмотре звука. По умолчанию фильтр "Аудиозапись" использует размер буфера на полсекунд. Этот размер буфера является оптимальным для записи, но вызывает задержку предварительного просмотра на полсекунд. Чтобы уменьшить задержку, вызовите метод IAMBufferNegotiation::SuggestAllocatorProperties перед подключением выходного контакта фильтра записи звука. Этот метод принимает указатель на структуру ALLOCATOR_PROPERTIES . Используйте член cbBuffer , чтобы указать размер буфера в байтах. Буфер размером 80 миллисекунда обычно безопасен, но буферов размером 30 или 40 миллисекунда может быть достаточно. Если буферы слишком малы, качество звука будет снижено.