Partilhar via


KSPROPERTY_AUDIOLOOPBACK

A propriedade KSPROPERTY_AUDIOLOOPBACK indica se o ponto de toque de loopback é pré ou pós volume e silenciado.

A partir do Windows 11 24H2, definir a propriedade KSPROPERTY_AUDIOLOOPBACK é um requisito.

Tabela do resumo de uso

Obter Definir Destino Tipo de descritor da propriedade Tipo de valor de propriedade
Sim No Fixar KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT Estrutura KSATTRIBUTE

KSPROPERTY_AUDIOLOOPBACK é um conjunto de propriedades associadas a KSPROPSETID_AudioLoopback, com a seguinte propriedade implementada.

typedef enum {
    KSPROPERTY_AUDIOLOOPBACK_TAPPOINT_CAPS,
} KSPROPERTY_AUDIOLOOPBACK;

O Windows AudioEndpointBuilder usa KSPROPSETID_AudioLoopback com KSPROPERTY_AUDIOLOOPBACK_TAPPOINT_CAPS para recuperar o AUDIOLOOPBACK_TAPPOINT_CAPS_<*>. Isso informa ao sistema operacional se o ponto de extremidade de áudio tem a capacidade de fazer loopback pré-volume, loopback pós-volume ou ambos.

Mais tarde, no momento da criação do pino, o sistema operacional fornece um atributo, KSATTRIBUTEID_AUDIOLOOPBACK_TAPPOINT com um KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT, para comunicar se deseja criar o pino de loopback como pré-volume ou pós-volume.

Os limites de ponto de toque são definidos da seguinte forma.

#define AUDIOLOOPBACK_TAPPOINT_CAPS_PREVOLUMEMUTE      (0x1)
#define AUDIOLOOPBACK_TAPPOINT_CAPS_POSTVOLUMEMUTE     (0x2)

A estrutura KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT disponível em ksmedia.h pode fornecer um wrapper para especificar o atributo AUDIO_LOOPBACK_TAPPOINT_TYPE sobre onde tocar em loopback no gráfico de fluxo.

Valor de retorno

Uma solicitação de propriedade KSPROPERTY_AUDIOLOOPBACK retorna STATUS_SUCCESS para indicar que foi concluída com êxito. Caso contrário, a solicitação retornará um código de status de erro apropriado.

Comentários

Um sistema de áudio pode ser resumido da seguinte forma.

  • Saída de processamento de sinal: A saída do processamento de sinal de descarregado ou direto do provedor de host.
  • Volume: A próxima etapa do fluxo, em que o volume do sinal de áudio é ajustado.
  • Mudo: Este estágio silencia o sinal de áudio, se necessário.
  • EFX (Efeitos): Aqui, os efeitos são aplicados ao sinal de áudio.
  • Saída: O estágio final em que o sinal de áudio processado é emitido.

Os sistemas com mecanismo de áudio de hardware devem implementar o pino de loopback. O pino de loopback retorna a saída de áudio mixado depois que todo o processamento de sinal foi aplicado.

O fluxo de loopback também é afetado pelo volume de ponto de extremidade e silenciado. Essa propriedade permite que os aplicativos escolham se o fluxo de loopback deve ser retornado antes ou depois de aplicar o volume de ponto de extremidade e silenciado.

O driver de áudio deve conectar o pino de saída do mecanismo de áudio ao pino de loopback do filtro. O pino de loopback deve anunciar a categoria como KSNODETYPE_AUDIO_LOOPBACK. O loopback não implementa modos de processamento de sinal.

O sistema operacional pode consultar o driver de áudio para recursos de ponto de toque de loopback. Os recursos são retornados como uma pequena máscara de sinalizadores.

O fluxo criado no pino de loopback coleta a saída mista de DSP e a fornece como um fluxo de captura de volta ao sistema operacional. Uma maneira de o driver obter opções do sistema operacional é por meio de atributos de fluxo. Se nenhum atributo for aplicado ao fluxo de loopback, o loopback deverá ser coletado antes que o volume e o mudo sejam aplicados na saída do mixer.

Para um cliente de modo de usuário, a alternância entre loopback pré-volume e loopback pós-volume é feita via AUDCLNT_STREAMOPTIONS_POST_VOLUME_LOOPBACK, passada como um AUDCLNT_STREAMOPTIONS (audioclient.h) ao chamar SetClientProperties.

KSNODETYPE_AUDIO_LOOPBACK

KSNODETYPE_AUDIO_LOOPBACK representa recursos de loopback de áudio. Ele é definido em ksmedia.h como mostrado aqui.

#define STATIC_KSNODETYPE_AUDIO_LOOPBACK\
    0x8f42c0b2, 0x91ce, 0x4bcf, 0x9c, 0xcd, 0xe, 0x59, 0x90, 0x37, 0xab, 0x35
DEFINE_GUIDSTRUCT("8F42C0B2-91CE-4BCF-9CCD-0E599037AB35", KSNODETYPE_AUDIO_LOOPBACK);
#define KSNODETYPE_AUDIO_LOOPBACK DEFINE_GUIDNAMED(KSNODETYPE_AUDIO_LOOPBACK)

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 11 versão 24H2
Cabeçalho Ksmedia.h

Confira também

KSPROPSETID_AudioLoopback

AUDIOLOOPBACK_TAPPOINT_TYPE enum

Estrutura KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT