Partilhar via


Constantes AUDCLNT_STREAMFLAGS_XXX

Especifica características que um cliente pode atribuir a um fluxo de áudio durante a inicialização do fluxo.

Constante/valor Descrição
AUDCLNT_STREAMFLAGS_CROSSPROCESS
0x00010000
O fluxo de áudio será membro de uma sessão de áudio entre processos. Para obter mais informações, consulte Comentários.
AUDCLNT_STREAMFLAGS_LOOPBACK
0x00020000
O fluxo de áudio funcionará no modo de loopback. Para obter mais informações, consulte Comentários.
AUDCLNT_STREAMFLAGS_EVENTCALLBACK
0x00040000
O processamento do buffer de áudio pelo cliente será controlado por eventos. Para obter mais informações, consulte Comentários.
AUDCLNT_STREAMFLAGS_NOPERSIST
0x00080000
As configurações de volume e mudo de uma sessão de áudio não persistirão entre as reinicializações do aplicativo. Para obter mais informações, consulte Comentários.
AUDCLNT_STREAMFLAGS_RATEADJUST
0x00100000
Essa constante é nova no Windows 7. A taxa de exemplo do fluxo é ajustada para uma taxa especificada por um aplicativo. Para obter mais informações, consulte Comentários.
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM
0x80000000
Um matriz de canal e um conversor de taxa de exemplo são inseridos conforme necessário para converter entre o formato não compactado fornecido para IAudioClient::Initialize e o formato de combinação do mecanismo de áudio.
AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY
0x08000000
Quando usado com AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM, um conversor de taxa de exemplo com melhor qualidade do que a conversão padrão, mas com um custo de desempenho mais alto é usado. Isso deve ser usado se o áudio for, em última análise, destinado a ser ouvido por humanos em oposição a outros cenários, como bombear o silêncio ou preencher um medidor.

Comentários

O método IAudioClient::Initialize e a estrutura DIRECTX_AUDIO_ACTIVATION_PARAMS usam as constantes AUDCLNT_STREAMFLAGS_XXX.

O sinalizador AUDCLNT_STREAMFLAGS_CROSSPROCESS indica que a sessão de áudio do fluxo é uma sessão entre processos. Uma sessão entre processos pode aceitar fluxos de mais de um processo. Se dois aplicativos em dois processos separados chamarem IAudioClient::Initialize com GUIDs de sessão idênticos e ambos os aplicativos definirem o sinalizador AUDCLNT_SHAREMODE_CROSSPROCESS, o mecanismo de áudio atribuirá seus fluxos à mesma sessão de processo cruzado. Esse sinalizador substitui o comportamento padrão, que é atribuir o fluxo a uma sessão específica do processo em vez de uma sessão entre processos. O bit de sinalizador AUDCLNT_STREAMFLAGS_CROSSPROCESS é incompatível com o modo exclusivo. Para obter mais informações sobre sessões entre processos, consulte Sessões de áudio.

O sinalizador AUDCLNT_STREAMFLAGS_LOOPBACK habilita a gravação de loopback. Na gravação de loopback, o mecanismo de áudio copia o fluxo de áudio que está sendo reproduzido por um dispositivo de ponto de extremidade de renderização em um buffer de ponto de extremidade de áudio para que um cliente WASAPI possa capturar o fluxo. Se esse sinalizador estiver definido, o método IAudioClient::Initialize tentará abrir um buffer de captura no dispositivo de renderização. Esse sinalizador é válido apenas para um dispositivo de renderização e somente se a chamada Initialize definir o parâmetro ShareMode como AUDCLNT_SHAREMODE_SHARED. Caso contrário, a chamada Inicializar falhará. Se a chamada for bem-sucedida, o cliente poderá chamar o método IAudioClient::GetService para obter uma interface IAudioCaptureClient no dispositivo de renderização. Para obter mais informações, consulte Gravação de loopback.

O sinalizador AUDCLNT_STREAMFLAGS_EVENTCALLBACK habilita o buffer controlado por eventos. Se um cliente definir esse sinalizador na chamada para IAudioClient::Initialize que inicializa um fluxo, o cliente deverá chamar posteriormente o método IAudioClient::SetEventHandle para fornecer um identificador de evento para o fluxo. Depois que o fluxo for iniciado, o mecanismo de áudio sinalizará o identificador de evento para notificar o cliente sempre que um buffer estiver pronto para o cliente processar. O WASAPI dá suporte ao buffer controlado por eventos para buffers de renderização e captura. Os fluxos de modo compartilhado e de modo exclusivo podem usar o buffer controlado por eventos. Para obter um exemplo de código que usa o sinalizador AUDCLNT_STREAMFLAGS_EVENTCALLBACK, consulte Fluxos de modo exclusivo.

O sinalizador AUDCLNT_STREAMFLAGS_NOPERSIST desabilita a persistência do volume e ativa as configurações de mudo para uma sessão que contém fluxos de renderização. Por padrão, o nível de volume e o estado de mudo de uma sessão de renderização são persistentes entre as reinicializações do aplicativo. O nível de volume e o estado de mudo de uma sessão de captura nunca são persistentes. Para obter mais informações sobre a persistência do volume de sessão e as configurações de mudo, consulte Sessões de áudio.

O sinalizador AUDCLNT_STREAMFLAGS_RATEADJUST permite que um aplicativo obtenha uma referência à interface IAudioClockAdjustment usada para definir a taxa de exemplo para o fluxo. Para obter um ponteiro para essa interace, um aplicativo deve inicializar o cliente de áudio com esse sinalizador e, em seguida, chamar IAudioClient::GetService especificando o identificador IID_IAudioClockAdjustment . Para definir a nova taxa de exemplo, chame IAudioClockAdjustment::SetSampleRate. Esse sinalizador é válido apenas para um dispositivo de renderização. Caso contrário, a chamada GetService falhará com o código de erro AUDCLNT_E_WRONG_ENDPOINT_TYPE. O aplicativo também deve definir o parâmetro ShareMode como AUDCLNT_SHAREMODE_SHARED durante a chamada Inicializar . SetSampleRate falhará se o cliente de áudio não estiver no modo compartilhado.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte
Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Cabeçalho
Audiosessiontypes.h

Confira também

Principais constantes de áudio

IAudioCaptureClient Interface

IAudioClient::GetService

IAudioClient::Initialize

IAudioClient::SetEventHandle