TVAudioMode 列挙 (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

テレビ オーディオ コントロールのモードを指定します。

構文

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;

定数

 
AMTVAUDIO_MODE_MONO
値: 0x1
モノラル。
AMTVAUDIO_MODE_STEREO
値: 0x2
ステレオ。
AMTVAUDIO_MODE_LANG_A
値: 0x10
言語 A: メイン オーディオ チャネル。
AMTVAUDIO_MODE_LANG_B
値: 0x20
Languag B: セカンダリ オーディオ プログラム (SAP)。
AMTVAUDIO_MODE_LANG_C
値: 0x40
言語 C: 第 3 言語、または メイン オーディオ プログラムと SAP (たとえば、ある話者の英語、もう一方の話者の日本語)。
AMTVAUDIO_PRESET_STEREO
値: 0x200
ステレオ プリセット。
AMTVAUDIO_PRESET_LANG_A
値: 0x1000
Languag A プリセット。
AMTVAUDIO_PRESET_LANG_B
値: 0x2000
言語 B プリセット。
AMTVAUDIO_PRESET_LANG_C
値: 0x4000
言語 C プリセット。

注釈

TVAudioMode フラグは 2 つのグループに分類されます。

  • ビット 0 から 7: モード フラグ。 これらのフラグには、モノ/ステレオと言語 (A、B、または C) が含まれます。
  • ビット 8 以降: プリセット フラグ。
メモ プリセット フラグには、Windows Vista 以降が必要です。
 
モード フラグは、チューナの現在のオーディオ モードを表します。 プリセット フラグは、オーディオ信号が変更された場合に将来有効にできる設定を表します。 多くの場合、セカンダリ オーディオ プログラムは使用できないか、mono でのみ使用できます。 アプリケーションでは、事前設定されたフラグを使用してユーザーの優先言語を格納しながら、その言語が使用できない場合に適切なエクスペリエンスを提供できます。

次の解説では、 IAMTVAudio メソッドでこれらのフラグがどのように解釈されるかについて説明します。

IAMTVAudio::p ut_TVAudioMode:

  • モード フラグを設定すると、チューナはすぐにそのモードに切り替わります。 モードがすぐに使用できない場合、 メソッドは失敗します。
  • プリセット フラグを設定すると、ドライバーは可能であればすぐにそのモードに切り替わります。それ以外の場合、ドライバーは要求を格納します。 要求されたモードが後で使用可能になった場合、ドライバーはそのモードに切り替わります。 ドライバーは、プログラムの変更またはチャネルの変更全体のプリセット フラグを維持します。 プリセットモードは、チューナがそのモードをサポートできない場合にのみ失敗します。 オーディオ信号の内容が原因で失敗することはありません。
1 つの言語モード フラグ (AMTVAUDIO_MODE_LANG_AAMTVAUDIO_MODE_LANG_B、または AMTVAUDIO_MODE_LANG_C) と 1 つのステレオ/モノ フラグ (AMTVAUDIO_MODE_MONO または AMTVAUDIO_MODE_STEREO) を組み合わせることができます。 モード フラグの他の組み合わせは無効です。 たとえば、 AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_MODE_LANG_B が無効です。

複数のプリセット フラグを組み合わせることができます。 ドライバーは、次の順序でそれらを試みます。

  1. 言語 C
  2. 言語 B
  3. 言語 A
  4. ステレオ
モード フラグとプリセット フラグを組み合わせることができますが、同じ言語のモード フラグとプリセット フラグを組み合わせることはできません。 たとえば、 AMTVAUDIO_MODE_LANG_A | AMTVAUDIO_PRESET_LANG_A が無効です。 モード フラグは、事前設定されたフラグよりも優先されます。

何らかの理由でメソッドが失敗した場合、チューナの状態(つまり、現在のモードと保存されているプリセット)は変わりません。

C 言語を除き、チューナは常に両方のオーディオ チャネルで同じ言語をストリーミングします。

例: 呼び出し元はAMTVAUDIO_PRESET_LANG_B AMTVAUDIO_PRESET_STEREO | 設定します。 現在のプログラムが、ステレオを使用する言語 A または mono の言語 B で使用できる場合を想定します。 ドライバーは、そのフラグが優先されるため、言語 B (mono) を選択します。 その後、プログラムは言語 A でのみ使用できる商用に切り替えます。言語 B を使用できないため、ドライバーは言語 A に切り替えます。 プログラムが再開されると、ドライバーは言語 B に戻ります。

IAMTVAudio::GetAvailableTVAudioModes: このメソッドは、シグナルで現在使用可能なモードを返します。 このメソッドは、事前設定されたフラグを返しません。

IAMTVAudio::GetHardwareSupportedTVAudioModes: このメソッドは、ハードウェアでサポートされているすべてのモード (プリセット モードを含む) を返します。

IAMTVAudio::get_TVAudioMode: このメソッドは現在のモードを返します。 このメソッドは、事前設定されたフラグを返しません。

定数をマスクする

Strmif.h では、次の定数が定義されています。
#define TVAUDIO_MODE_MASK 0x000000ff
#define TVAUDIO_PRESET_MASK 0x0000ff00

TVAUDIO_MODE_MASKを使用してモード フラグを選択し、TVAUDIO_PRESET_MASKしてプリセット フラグを選択できます。

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

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

要件

要件
Header strmif.h (Dshow.h を含む)

こちらもご覧ください

DirectShow 列挙型

IAMTVAudio インターフェイス