Что означает код HRESULT 0xC00DABE8 (MF_E_CAPTURE_SOURCE_NO_AUDIO_STREAM_PRESENT)?

 
Предыдущий Следующий
MF_E_CAPTURE_SOURCE_NO_VIDEO_STREAM_PRESENT MF_E_CAPTURE_SOURCE_DEVICE_EXTENDEDPROP_OP_IN_PROGRESS

MF_E_CAPTURE_SOURCE_NO_AUDIO_STREAM_PRESENT

MF_E_CAPTURE_SOURCE_NO_AUDIO_STREAM_PRESENT (0xC00DABE8) означает, что активный источник механизм захвата не содержит аудиопотока, который требуется текущей операции.

Наличие камеры само по себе не гарантирует наличие звука. При IMFCaptureEngine::Initialize приложение может работать только с видео, передать собственный источник аудио либо позволить механизм захвата выбрать встроенный микрофон камеры или другое устройство записи. После инициализации каждый поток источника имеет отдельную категорию, в том числе MF_CAPTURE_ENGINE_STREAM_CATEGORY_AUDIO.

Что проверить

  • Сохраните значение MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY, аргумент pAudioSource и выбранное аудиоустройство при Initialize.
  • Через GetDeviceStreamCount и GetDeviceStreamCategory проверьте фактические категории потоков текущего источника.
  • Если звук необязателен, не добавляйте аудиопоток в приёмник записи и отключите функции, которые его требуют.
  • Если звук обязателен, исправляйте выбор источника/устройства до диагностики энкодера и контейнера: кодек не может создать отсутствующий входной аудиопоток.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.