Compartir a través de


Enumeración TVAudioMode (strmif.h)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Especifica el modo de un control de audio 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 audio principal.
AMTVAUDIO_MODE_LANG_B
Valor: 0x20
Languag B: programa de audio secundario (SAP).
AMTVAUDIO_MODE_LANG_C
Valor: 0x40
Lenguaje C: un tercer idioma, o el programa de audio principal más SAP (por ejemplo, inglés de un hablante y japonés del otro hablante).
AMTVAUDIO_PRESET_STEREO
Valor: 0x200
Valor preestablecido estéreo.
AMTVAUDIO_PRESET_LANG_A
Valor: 0x1000
Valor preestablecido Languag A.
AMTVAUDIO_PRESET_LANG_B
Valor: 0x2000
Valor preestablecido de idioma B.
AMTVAUDIO_PRESET_LANG_C
Valor: 0x4000
Valor preestablecido de Lenguaje C.

Comentarios

Las marcas TVAudioMode se dividen en dos grupos.

  • Bits 0 - 7: marcas de modo. Estas marcas incluyen mono/estéreo y lenguaje (A, B o C).
  • Bits 8 y posteriores: marcas preestablecidas.
Nota Las marcas preestablecidas requieren Windows Vista o posterior.
 
Las marcas de modo representan el modo de audio actual del tuner. Las marcas preestablecidas representan la configuración que puede surtir efecto en el futuro, si cambia la señal de audio. A menudo, el programa de audio secundario no está disponible o solo está disponible en mono. Una aplicación puede usar las marcas preestablecidas para almacenar el idioma preferido del usuario, a la vez que proporciona una experiencia razonable cuando ese idioma no está disponible.

Los siguientes comentarios describen cómo los métodos IAMTVAudio interpretan estas marcas.

IAMTVAudio::p ut_TVAudioMode:

  • Si establece una marca de modo, el tuner cambia a ese modo inmediatamente. Si el modo no está disponible inmediatamente, se produce un error en el método.
  • Si establece una marca preestablecida, el controlador cambia a ese modo inmediatamente si es posible; de lo contrario, el controlador almacena la solicitud. Si el modo solicitado está disponible más adelante, el controlador cambia a ese modo. El controlador mantiene las marcas preestablecidas en los cambios del programa o en los cambios de canal. Solo se produce un error en un modo preestablecido si el tuner no puede admitir ese modo. Nunca falla debido al contenido de la señal de audio.
Puede combinar una marca de modo de idioma (AMTVAUDIO_MODE_LANG_A, AMTVAUDIO_MODE_LANG_B o AMTVAUDIO_MODE_LANG_C) con una marca estéreo/mono (AMTVAUDIO_MODE_MONO o AMTVAUDIO_MODE_STEREO). Otras combinaciones de marcas de modo no son válidas. Por ejemplo, AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_MODE_LANG_B no es válido.

Puede combinar más de una marca preestablecida. El controlador los intenta en el orden siguiente:

  1. Lenguaje C
  2. Idioma B
  3. Idioma A
  4. Estéreo
Puede combinar marcas de modo y marcas preestablecidas, pero no puede combinar una marca de modo y una marca preestablecida para el mismo idioma. Por ejemplo, AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_PRESET_LANG_A no es válido. Las marcas de modo tienen prioridad sobre las marcas preestablecidas.

Si se produce un error en el método por cualquier motivo, el estado del tuner (es decir, el modo actual más los valores preestablecidos almacenados) no cambia.

Excepto en el lenguaje C, el sintonizador siempre transmite el mismo idioma en ambos canales de audio.

Ejemplo: el llamador establece AMTVAUDIO_PRESET_STEREO | AMTVAUDIO_PRESET_LANG_B. Supongamos que el programa actual está disponible en el idioma A con estéreo o lenguaje B con mono. El controlador selecciona el idioma B (mono), porque esa marca tiene prioridad. Más adelante, el programa cambia a un comercial que solo está disponible en el idioma A. El controlador cambia al idioma A, porque el idioma B no está disponible. Cuando se reanuda el programa, el controlador vuelve al idioma B.

IAMTVAudio::GetAvailableTVAudioModes: este método devuelve los modos que están disponibles actualmente en la señal. Este método nunca devuelve marcas preestablecidas.

IAMTVAudio::GetHardwareSupportedTVAudioModes: este método devuelve todos los modos admitidos por el hardware, incluidos los modos preestablecidos.

IAMTVAudio::get_TVAudioMode: este método devuelve el modo actual. Este método nunca devuelve marcas preestablecidas.

Mask (constantes)

Las constantes siguientes se definen en Strmif.h:
#define TVAUDIO_MODE_MASK 0x000000ff
#define TVAUDIO_PRESET_MASK 0x0000ff00

Puede usar TVAUDIO_MODE_MASK para seleccionar marcas de modo y TVAUDIO_PRESET_MASK para seleccionar marcas preestablecidas:

C++
DWORD ModeFlags(DWORD AudioMode) { return AudioMode & TVAUDIO_MODE_MASK; }

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

Requisitos

Requisito Valor
Header strmif.h (incluye Dshow.h)

Consulte también

Tipos enumerados de DirectShow

IAMTVAudio (Interfaz)