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


Фильтр отрисовщика DirectSound

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

Этот фильтр отрисовывает звук с помощью DirectSound. Этот фильтр в настоящее время является отрисовщиком звука по умолчанию для звукового сигнального формата.

Помимо основных возможностей отрисовки звука, этот фильтр может обрабатывать вызовы API DirectSound. Используйте методы IAMDirectSound , чтобы задать и получить окно, которое будет обрабатывать воспроизведение звука. Отрисовщик звука DirectSound — это фильтр отрисовки звука по умолчанию для DirectShow.

Метка Значение
Интерфейсы фильтра IAMAudioRendererStats, IAMClockSlave, IAMDirectSound, IAMResourceControl, IBaseFilter, IBasicAudio, IDirectSound3DBuffer, IDirectSound3dListener, IMediaPosition, IMediaSeeking, IQualityControl, IReferenceClock
Типы носителей входных закрепления Основной тип: MEDIATYPE_AudioSubtypes:
  • MEDIASUBTYPE_PCM
  • MEDIASUBTYPE_IEEE_FLOAT
  • MEDIASUBTYPE_DOLBY_AC3_SPDIF
  • MEDIASUBTYPE_RAW_SPORT
  • MEDIASUBTYPE_SPDIF_TAG_241h
  • MEDIASUBTYPE_DRM_Audio
Тип формата: FORMAT_WaveFormatEx
Интерфейсы ввода-закрепления IMemInputPin, IPin, IPinConnection, IQualityControl
Типы носителей выходных закрепления Не применяется
Интерфейсы вывода закрепления Не применяется
Фильтрация CLSID CLSID_DSoundRender
CLSID страницы свойств CLSID_AudioProperties, CLSID_AudioRendererAdvancedProperties
Исполняемый файл quartz.dll
Заслуга MERIT_PREFERRED
Категория фильтра CLSID_AudioRendererCategory

Комментарии

Этот фильтр выступает в качестве оболочки для звукового устройства. Чтобы перечислить звуковые устройства, доступные в системе пользователя, используйте интерфейс ICreateDevEnum с категорией отрисовщика звука (CLSID_AudioRendererCategory). Для каждого звукового устройства категория отрисовщика звука содержит два экземпляра фильтра. Один из них соответствует отрисовщику DirectSound, а другой — фильтру отрисовщика звука (WaveOut ). Экземпляр DirectSound имеет понятное имя "DirectSound: DeviceName", где DeviceName — это имя устройства. Экземпляр WaveOut имеет понятное имя DeviceName.

Категория отрисовщика звука содержит два дополнительных экземпляра фильтра с именами "Устройство DirectSound по умолчанию" и "Устройство WaveOut по умолчанию". Они соответствуют звуковому устройству по умолчанию, выбранному пользователем с помощью панель управления. На самом деле они сопоставляются с одной из пар, описанных в предыдущем абзаце. Например, если в системе есть два звуковых устройства, Устройство A и Устройство B, категория отрисовщика звука будет содержать следующее:

  • Устройство A
  • DirectSound: устройство A
  • Устройство B
  • DirectSound: устройство B
  • Устройство DirectSound по умолчанию
  • Устройство WaveOut по умолчанию

Если пользователь выбрал устройство A в качестве устройства по умолчанию, значение "Устройство DirectSound по умолчанию" эквивалентно "DirectSound: устройство A", а "Устройство WaveOut по умолчанию" — "Устройство A". Если пользователь выберет устройство B в качестве устройства по умолчанию, эти сопоставления будут изменены.

"Устройство DirectSound по умолчанию" имеет значение MERIT_PREFERRED. Другие имеют заслуги MERIT_DO_NOT_USE. Поэтому Intelligent Connect всегда выбирает устройство DirectSound по умолчанию.

Фильтр отрисовщика DirectSound поддерживает трехмерный звук через интерфейсы DirectSound IDirectSound3DBuffer и IDirectSound3dListener . Вы также можете запросить фильтр для текущих версий этих интерфейсов, IDirectSound3DBuffer8 и IDirectSound3dListener8. Запустите граф перед вызовом методов в этих интерфейсах.

Фильтры DirectShow