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


Метод IXAudio2::CreateMasteringVoice (xaudio2.h)

Создает и настраивает голос мастера.

Синтаксис

HRESULT CreateMasteringVoice(
  [out]          IXAudio2MasteringVoice     **ppMasteringVoice,
  [in]           UINT32                     InputChannels,
  [in]           UINT32                     InputSampleRate,
  [in]           UINT32                     Flags,
  [in]           LPCWSTR                    szDeviceId,
  [in, optional] const XAUDIO2_EFFECT_CHAIN *pEffectChain,
  [in, optional] AUDIO_STREAM_CATEGORY      StreamCategory
);

Параметры

[out] ppMasteringVoice

В случае успешного выполнения возвращает указатель на новый объект IXAudio2MasteringVoice .

[in] InputChannels

Количество каналов, которые голос хозяина ожидает во входном звуке. Входные каналы должны быть меньше или равны XAUDIO2_MAX_AUDIO_CHANNELS.

Вы можете задать для InputChannels значение XAUDIO2_DEFAULT_CHANNELS, что приводит к попытке XAudio2 определить конфигурацию системного динамика.

[in] InputSampleRate

Частота выборки входных звуковых данных хозяина. Эта ставка должна быть кратна XAUDIO2_QUANTUM_DENOMINATOR. Параметр InputSampleRate должен находиться в диапазоне от XAUDIO2_MIN_SAMPLE_RATE до XAUDIO2_MAX_SAMPLE_RATE.

Для параметра InputSampleRate можно задать значение XAUDIO2_DEFAULT_SAMPLERATE, а значение по умолчанию определяется текущей платформой.

Windows XP по умолчанию — 44100.

По умолчанию в Windows Vista и Windows 7 используется параметр, указанный в панель управления звука. Значение по умолчанию для этого параметра — 44100 (или 48000, если требуется драйвером).

Флаги

[in] Flags

Флаги, указывающие поведение голоса хозяина. Это может быть 0 или XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT.

[in] szDeviceId

Идентификатор устройства для получения выходного звука. Если задать значение по умолчанию NULL, XAudio2 выберет глобальное звуковое устройство по умолчанию. В Windows 10 или более поздних версий значение NULL также согласится на использование виртуализированного клиента WASAPI, если XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT не передано в разделе Флаги.

[in, optional] pEffectChain

Указатель на структуру XAUDIO2_EFFECT_CHAIN , описывающую цепочку эффектов, используемую в голосе для овладения, или значение NULL, чтобы не использовать эффекты.

[in, optional] StreamCategory

Категория аудиопотока, используемая для этого голоса.

Возвращаемое значение

В случае успешного выполнения возвращает S_OK; в противном случае — код ошибки. Возвращает ERROR_NOT_FOUND, если звуковое устройство по умолчанию не существует и в качестве параметра szDeviceId передается значение NULL.

Описание кодов ошибок XAudio2 см. в разделе Коды ошибок XAudio2 .

Комментарии

Голоса для овладения получают выходные данные одного или нескольких исходных или субмикшных голосов. Они обрабатывают данные и отправляют их на устройство вывода звука.

Как правило, необходимо создать голос с частотой выборки ввода, которая будет использоваться большинством аудиосодержимого заголовка. Голос хозяина выполняет преобразование частоты выборки из этой входной частоты выборки в фактическую скорость вывода устройства.

Вы не сможете создать исходные или подмиксные голоса, пока не будет создан голос для управления. Вы не можете уничтожить голос мастера, если какие-либо исходные или субмикшные голоса по-прежнему существуют.

Управление голосами всегда обрабатывается после всех исходных и субмикшированных голосов. Это означает, что не нужно указывать параметр ProcessingStage для управления порядком обработки.

XAudio2 позволяет существовать одновременно только одному голосу для овладения. При попытке создать несколько голосов, возвращается XAUDIO2_E_INVALID_CALL. Если требуется дополнительный голос мастеринга, например для устройства вывода с другим набором категорий аудио, необходимо создать дополнительный экземпляр XAudio2.

При первом создании мастеринг голоса находятся в запущенном состоянии.

Недопустимо вызывать CreateMasteringVoice из обратного вызова (то есть IXAudio2EngineCallback или IXAudio2VoiceCallback). При вызове Метода CreateMasteringVoice в обратном вызове возвращается XAUDIO2_E_INVALID_CALL.

XAUDIO2_EFFECT_CHAIN, передаваемая в качестве аргумента pEffectChain, и все содержащиеся в нем XAUDIO2_EFFECT_DESCRIPTOR сведения больше не требуются после успешного завершения CreateMasteringVoice и могут быть удалены сразу после вызова CreateMasteringVoice.

Обратите внимание, что пакет SDK для DirectX XAUDIO2 версии CreateMasteringVoice принял аргумент DeviceIndex вместо szDeviceId и аргумента StreamCategory. Это отражает изменения, необходимые для стандартной модели перечисления устройств Windows.

Требования к платформе

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK Для DirectX (XAudio 2.7)

Требования

Требование Значение
Целевая платформа Windows
Header xaudio2.h

См. также раздел

Руководство: создание базовой схемы обработки звука

IXAudio2

Обзор протокола XAPO

Преобразования частоты выборки XAudio2