Enumeração TVAudioMode (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Especifica o modo de um controle de áudio de TV.

Syntax

typedef enum tagTVAudioMode {
  AMTVAUDIO_MODE_MONO = 0x1,
  AMTVAUDIO_MODE_STEREO = 0x2,
  AMTVAUDIO_MODE_LANG_A = 0x10,
  AMTVAUDIO_MODE_LANG_B = 0x20,
  AMTVAUDIO_MODE_LANG_C = 0x40,
  AMTVAUDIO_PRESET_STEREO = 0x200,
  AMTVAUDIO_PRESET_LANG_A = 0x1000,
  AMTVAUDIO_PRESET_LANG_B = 0x2000,
  AMTVAUDIO_PRESET_LANG_C = 0x4000
} TVAudioMode;

Constantes

 
AMTVAUDIO_MODE_MONO
Valor: 0x1
Mono.
AMTVAUDIO_MODE_STEREO
Valor: 0x2
Estéreo.
AMTVAUDIO_MODE_LANG_A
Valor: 0x10
Idioma A: canal de áudio principal.
AMTVAUDIO_MODE_LANG_B
Valor: 0x20
Languag B: SAP (programa de áudio secundário).
AMTVAUDIO_MODE_LANG_C
Valor: 0x40
Idioma C: um terceiro idioma ou o programa de áudio main mais o SAP (por exemplo, inglês de um alto-falante e japonês do outro locutor).
AMTVAUDIO_PRESET_STEREO
Valor: 0x200
Predefinição estéreo.
AMTVAUDIO_PRESET_LANG_A
Valor: 0x1000
Languag Uma predefinição.
AMTVAUDIO_PRESET_LANG_B
Valor: 0x2000
Predefinição do Idioma B.
AMTVAUDIO_PRESET_LANG_C
Valor: 0x4000
Predefinição de Linguagem C.

Comentários

Os sinalizadores TVAudioMode se enquadram em dois grupos.

  • Bits 0 a 7: sinalizadores de modo. Esses sinalizadores incluem mono/estéreo e linguagem (A, B ou C).
  • Bits 8 e superiores: sinalizadores predefinidos.
Nota Os sinalizadores predefinido exigem o Windows Vista ou posterior.
 
Os sinalizadores de modo representam o modo de áudio atual do sintonizador. Os sinalizadores predefinidos representam configurações que podem entrar em vigor no futuro, se o sinal de áudio for alterado. Muitas vezes, o programa de áudio secundário não está disponível ou está disponível apenas em mono. Um aplicativo pode usar os sinalizadores predefinido para armazenar o idioma preferencial do usuário, ao mesmo tempo em que fornece uma experiência razoável quando esse idioma não está disponível.

As observações a seguir descrevem como os métodos IAMTVAudio interpretam esses sinalizadores.

IAMTVAudio::p ut_TVAudioMode:

  • Se você definir um sinalizador de modo, o sintonizador alterna para esse modo imediatamente. Se o modo não estiver disponível imediatamente, o método falhará.
  • Se você definir um sinalizador predefinido, o driver alterna para esse modo imediatamente, se possível; caso contrário, o driver armazena a solicitação. Se o modo solicitado ficar disponível posteriormente, o driver alterna para esse modo. O driver mantém os sinalizadores predefinidos entre alterações de programa ou alterações de canal. Um modo predefinido falhará somente se o sintonizador não puder dar suporte a esse modo. Ele nunca falha devido ao conteúdo do sinal de áudio.
Você pode combinar um sinalizador de modo de linguagem (AMTVAUDIO_MODE_LANG_A, AMTVAUDIO_MODE_LANG_B ou AMTVAUDIO_MODE_LANG_C) com um sinalizador estéreo/mono (AMTVAUDIO_MODE_MONO ou AMTVAUDIO_MODE_STEREO). Outras combinações de sinalizadores de modo não são válidas. Por exemplo, AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_MODE_LANG_B não é válido.

Você pode combinar mais de um sinalizador predefinido. O driver as tenta na seguinte ordem:

  1. Linguagem C
  2. Idioma B
  3. Idioma A
  4. Estéreo
Você pode combinar sinalizadores de modo e sinalizadores predefinido, mas não pode combinar um sinalizador de modo e um sinalizador predefinido para o mesmo idioma. Por exemplo, AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_PRESET_LANG_A não é válido. Os sinalizadores de modo têm prioridade sobre sinalizadores predefinido.

Se o método falhar por qualquer motivo, o estado do sintonizador , ou seja, o modo atual mais as predefinições armazenadas, não será alterado.

Com exceção da linguagem C, o sintonizador sempre transmite o mesmo idioma em ambos os canais de áudio.

Exemplo: o chamador define AMTVAUDIO_PRESET_STEREO | AMTVAUDIO_PRESET_LANG_B. Suponha que o programa atual esteja disponível no idioma A com estéreo ou idioma B com mono. O driver seleciona a linguagem B (mono), porque esse sinalizador tem precedência. Posteriormente, o programa alterna para um comercial que só está disponível no idioma A. O driver alterna para o idioma A, pois o idioma B não está disponível. Quando o programa é retomado, o driver volta para o idioma B.

IAMTVAudio::GetAvailableTVAudioModes: esse método retorna os modos que estão disponíveis no momento no sinal. Esse método nunca retorna sinalizadores predefinido.

IAMTVAudio::GetHardwareSupportedTVAudioModes: esse método retorna todos os modos compatíveis com o hardware, incluindo modos predefinidos.

IAMTVAudio::get_TVAudioMode: esse método retorna o modo atual. Esse método nunca retorna sinalizadores predefinido.

Constantes de máscara

As seguintes constantes são definidas em Strmif.h:
#define TVAUDIO_MODE_MASK 0x000000ff
#define TVAUDIO_PRESET_MASK 0x0000ff00

Você pode usar TVAUDIO_MODE_MASK para selecionar sinalizadores de modo e TVAUDIO_PRESET_MASK para selecionar sinalizadores predefinido:

C++
Modo DWORDFlags(DWORD AudioMode) { retornar AudioMode & TVAUDIO_MODE_MASK; }

DWORD PresetFlags(DWORD AudioMode) { return AudioMode & TVAUDIO_PRESET_MASK; }

Requisitos

Requisito Valor
Cabeçalho strmif.h (inclua Dshow.h)

Confira também

Tipos Enumerados do DirectShow

IAMTVAudio Interface