Bagikan melalui


Enumerasi TVAudioMode (strmif.h)

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Menentukan mode kontrol audio TV.

Sintaks

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;

Konstanta

 
AMTVAUDIO_MODE_MONO
Nilai: 0x1
Mono.
AMTVAUDIO_MODE_STEREO
Nilai: 0x2
Stereo.
AMTVAUDIO_MODE_LANG_A
Nilai: 0x10
Bahasa A: Saluran audio utama.
AMTVAUDIO_MODE_LANG_B
Nilai: 0x20
Languag B: Program audio sekunder (SAP).
AMTVAUDIO_MODE_LANG_C
Nilai: 0x40
Bahasa C: Baik bahasa ketiga, atau program audio utama ditambah SAP (misalnya, Bahasa Inggris dari satu pembicara dan bahasa Jepang dari pembicara lainnya).
AMTVAUDIO_PRESET_STEREO
Nilai: 0x200
Prasetel stereo.
AMTVAUDIO_PRESET_LANG_A
Nilai: 0x1000
Languag A preset.
AMTVAUDIO_PRESET_LANG_B
Nilai: 0x2000
Preset Bahasa B.
AMTVAUDIO_PRESET_LANG_C
Nilai: 0x4000
Preset Bahasa C.

Keterangan

Bendera TVAudioMode tergabung dalam dua kelompok.

  • Bit 0 - 7: Bendera mode. Bendera ini termasuk mono/stereo dan bahasa (A, B, atau C).
  • Bit 8 dan yang lebih tinggi: Bendera prasetel.
Catatan Bendera prasetel memerlukan Windows Vista atau yang lebih baru.
 
Bendera mode mewakili mode audio tuner saat ini. Bendera prasetel mewakili pengaturan yang dapat berlaku di masa mendatang, jika sinyal audio berubah. Seringkali, program audio sekunder tidak tersedia, atau hanya tersedia dalam mono. Aplikasi dapat menggunakan bendera prasetel untuk menyimpan bahasa pilihan pengguna sambil memberikan pengalaman yang wajar ketika bahasa tersebut tidak tersedia.

Keterangan berikut menjelaskan bagaimana metode IAMTVAudio menginterpretasikan bendera ini.

IAMTVAudio::p ut_TVAudioMode:

  • Jika Anda mengatur bendera mode, tuner akan segera beralih ke mode tersebut. Jika mode tidak segera tersedia, metode gagal.
  • Jika Anda mengatur bendera prasetel, driver akan segera beralih ke mode tersebut jika memungkinkan; jika tidak, driver menyimpan permintaan. Jika mode yang diminta tersedia nanti, driver akan beralih ke mode tersebut. Driver mempertahankan bendera prasetel di seluruh perubahan program atau perubahan saluran. Mode prasetel gagal hanya jika tuner tidak dapat mendukung mode tersebut. Ini tidak pernah gagal karena isi sinyal audio.
Anda dapat menggabungkan satu bendera mode bahasa (AMTVAUDIO_MODE_LANG_A, AMTVAUDIO_MODE_LANG_B, atau AMTVAUDIO_MODE_LANG_C) dengan satu bendera stereo/mono (AMTVAUDIO_MODE_MONO atau AMTVAUDIO_MODE_STEREO). Kombinasi lain dari bendera mode tidak valid. Misalnya, AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_MODE_LANG_B tidak valid.

Anda dapat menggabungkan lebih dari satu bendera prasetel. Driver mencobanya dalam urutan berikut:

  1. Bahasa C
  2. Bahasa B
  3. Bahasa A
  4. Stereo
Anda dapat menggabungkan bendera mode dan bendera prasetel, tetapi Anda tidak dapat menggabungkan bendera mode dan bendera prasetel untuk bahasa yang sama. Misalnya, AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_PRESET_LANG_A tidak valid. Bendera mode memiliki prioritas atas bendera prasetel.

Jika metode gagal karena alasan apa pun, status penyetel — yaitu, mode saat ini ditambah preset yang disimpan — tidak berubah.

Kecuali untuk bahasa C, tuner selalu mengalirkan bahasa yang sama melalui kedua saluran audio.

Contoh: Penelepon mengatur AMTVAUDIO_PRESET_LANG_B AMTVAUDIO_PRESET_STEREO | . Misalkan program saat ini tersedia dalam bahasa A dengan stereo atau bahasa B dengan mono. Driver memilih bahasa B (mono), karena bendera tersebut lebih diutamakan. Kemudian, program beralih ke komersial yang hanya tersedia dalam bahasa A. Driver beralih ke bahasa A, karena bahasa B tidak tersedia. Ketika program dilanjutkan, driver beralih kembali ke bahasa B.

IAMTVAudio::GetAvailableTVAudioModes: Metode ini mengembalikan mode yang saat ini tersedia dalam sinyal. Metode ini tidak pernah mengembalikan bendera prasetel.

IAMTVAudio::GetHardwareSupportedTVAudioModes: Metode ini mengembalikan semua mode yang didukung oleh perangkat keras, termasuk mode prasetel.

IAMTVAudio::get_TVAudioMode: Metode ini mengembalikan mode saat ini. Metode ini tidak pernah mengembalikan bendera prasetel.

Konstanta Masker

Konstanta berikut didefinisikan dalam Strmif.h:
#define TVAUDIO_MODE_MASK 0x000000ff
#define TVAUDIO_PRESET_MASK 0x0000ff00

Anda dapat menggunakan TVAUDIO_MODE_MASK untuk memilih bendera mode dan TVAUDIO_PRESET_MASK untuk memilih bendera prasetel:

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

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

Persyaratan

Persyaratan Nilai
Header strmif.h (termasuk Dshow.h)

Lihat juga

Jenis DirectShow Enumerated

Antarmuka IAMTVAudio