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


Константы AUDCLNT_STREAMFLAGS_XXX

Указывает характеристики, которые клиент может назначить звуковому потоку во время инициализации потока.

Констант/значение Описание
AUDCLNT_STREAMFLAGS_CROSSPROCESS
0x00010000
Аудиопоток будет участником межпроцессного звукового сеанса. Дополнительные сведения см. в подразделе "Примечания".
AUDCLNT_STREAMFLAGS_LOOPBACK
0x00020000
Аудиопоток будет работать в режиме замыкания на себя. Дополнительные сведения см. в подразделе "Примечания".
AUDCLNT_STREAMFLAGS_EVENTCALLBACK
0x00040000
Обработка звукового буфера клиентом будет управляться событиями. Дополнительные сведения см. в подразделе "Примечания".
AUDCLNT_STREAMFLAGS_NOPERSIST
0x00080000
Параметры громкости и отключения звука для звукового сеанса не будут сохраняться при перезапуске приложения. Дополнительные сведения см. в подразделе "Примечания".
AUDCLNT_STREAMFLAGS_RATEADJUST
0x00100000
Эта константа является новой в Windows 7. Частота выборки потока корректируется в соответствии с скоростью, заданной приложением. Дополнительные сведения см. в подразделе "Примечания".
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM
0x80000000
Матричник каналов и преобразователь частоты дискретизации вставляются при необходимости для преобразования между несжатым форматом, предоставленным в IAudioClient::Initialize , и форматом микса звукового модуля.
AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY
0x08000000
При использовании с AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM используется преобразователь частоты выборки с более высоким качеством, чем преобразование по умолчанию, но с более высокими затратами на производительность. Это следует использовать, если звук в конечном итоге предназначен для того, чтобы быть услышан людьми, в отличие от других сценариев, таких как накачка тишины или заполнение счетчика.

Комментарии

Метод IAudioClient::Initialize и структура DIRECTX_AUDIO_ACTIVATION_PARAMS используют константы AUDCLNT_STREAMFLAGS_XXX.

Флаг AUDCLNT_STREAMFLAGS_CROSSPROCESS указывает, что аудиосеанс для потока является сеансом между процессами. Сеанс между процессами может принимать потоки из нескольких процессов. Если два приложения в двух отдельных процессах вызывают IAudioClient::Initialize с идентичными GUID сеанса и оба приложения устанавливают флаг AUDCLNT_SHAREMODE_CROSSPROCESS, то звуковой модуль назначает свои потоки одному и тому же сеансу между процессами. Этот флаг переопределяет поведение по умолчанию, которое заключается в назначении потока сеансу конкретного процесса, а не сеансу между процессами. Бит флага AUDCLNT_STREAMFLAGS_CROSSPROCESS несовместим с монопольным режимом. Дополнительные сведения о сеансах между процессами см. в разделе Аудиосеансы.

Флаг AUDCLNT_STREAMFLAGS_LOOPBACK включает запись с замыкания на себя. При записи замыкания на себя звуковой модуль копирует аудиопоток, воспроизводимый устройством конечной точки отрисовки, в буфер конечной точки звука, чтобы клиент WASAPI смог записать поток. Если этот флаг установлен, метод IAudioClient::Initialize пытается открыть буфер захвата на устройстве отрисовки. Этот флаг действителен только для устройства отрисовки и только в том случае, если вызов Initialize задает для параметра ShareMode значение AUDCLNT_SHAREMODE_SHARED. В противном случае вызов Initialize завершится ошибкой. Если вызов выполнен успешно, клиент может вызвать метод IAudioClient::GetService , чтобы получить интерфейс IAudioCaptureClient на устройстве отрисовки. Дополнительные сведения см. в разделе Запись замыкания на себя.

Флаг AUDCLNT_STREAMFLAGS_EVENTCALLBACK включает управляемую событиями буферизацию. Если клиент задает этот флаг в вызове метода IAudioClient::Initialize , который инициализирует поток, клиент должен впоследствии вызвать метод IAudioClient::SetEventHandle , чтобы предоставить дескриптор события для потока. После запуска потока звуковой модуль будет сигнализировать дескриптору события о необходимости уведомлять клиента каждый раз, когда буфер будет готов для обработки клиентом. WASAPI поддерживает управляемую событиями буферизацию как для буферов отрисовки, так и для буферов записи. Потоки в общем и монопольном режиме могут использовать управляемую событиями буферизацию. Пример кода, в котором используется флаг AUDCLNT_STREAMFLAGS_EVENTCALLBACK, см. в разделе Потоки в монопольном режиме.

Флаг AUDCLNT_STREAMFLAGS_NOPERSIST отключает сохраняемость тома и отключает параметры звука для сеанса, содержащего потоки отрисовки. По умолчанию уровень громкости и состояние отключения для сеанса отрисовки сохраняются при перезапуске приложения. Уровень громкости и состояние отключения звука для сеанса записи никогда не являются постоянными. Дополнительные сведения о сохранении громкости сеанса и отключении звука см. в разделе Звуковые сеансы.

Флаг AUDCLNT_STREAMFLAGS_RATEADJUST позволяет приложению получить ссылку на интерфейс IAudioClockAdjustment , который используется для задания частоты выборки для потока. Чтобы получить указатель на это взаимодействие, приложение должно инициализировать звуковой клиент с этим флагом, а затем вызвать IAudioClient::GetService , указав идентификатор IID_IAudioClockAdjustment . Чтобы задать новую частоту выборки, вызовите метод IAudioClockAdjustment::SetSampleRate. Этот флаг действителен только для устройства отрисовки. В противном случае вызов GetService завершается сбоем с кодом ошибки AUDCLNT_E_WRONG_ENDPOINT_TYPE. Приложение также должно задать для параметра ShareMode значение AUDCLNT_SHAREMODE_SHARED во время вызова Initialize . SetSampleRate завершается сбоем , если аудио-клиент не находится в режиме общего доступа.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера
Windows Server 2008 [классические приложения | Приложения UWP]
Заголовок
Audiosessiontypes.h

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

Основные звуковые константы

Интерфейс IAudioCaptureClient

IAudioClient::GetService

IAudioClient::Initialize

IAudioClient::SetEventHandle