Win32 API 日本語リファレンス
ホームMedia.DirectShow › TVAudioMode

TVAudioMode

列挙型
基底型i4

メンバー 9

名前10進16進説明
AMTVAUDIO_MODE_MONO10x1モノラルです。
AMTVAUDIO_MODE_STEREO20x2ステレオです。
AMTVAUDIO_MODE_LANG_A160x10言語 A: 主音声チャンネルです。
AMTVAUDIO_MODE_LANG_B320x20言語 B: 副音声番組 (SAP) です。
AMTVAUDIO_MODE_LANG_C640x40言語 C: 3 番目の言語、または主音声番組と SAP の組み合わせです (たとえば、一方のスピーカーから英語、もう一方のスピーカーから日本語が出力されます)。
AMTVAUDIO_PRESET_STEREO5120x200ステレオのプリセットです。
AMTVAUDIO_PRESET_LANG_A40960x1000言語 A のプリセットです。
AMTVAUDIO_PRESET_LANG_B81920x2000言語 B のプリセットです。
AMTVAUDIO_PRESET_LANG_C163840x4000言語 C のプリセットです。

公式ドキュメント

[このページに関連する機能である DirectShow はレガシー機能です。この機能は MediaPlayerIMFMediaEngine、および Audio/Video Capture in Media Foundation に置き換えられました。これらの機能は Windows 10 および Windows 11 向けに最適化されています。Microsoft は、新しいコードでは可能な限り DirectShow ではなく MediaPlayerIMFMediaEngineAudio/Video Capture in Media Foundation を使用することを強く推奨します。また、レガシー API を使用している既存のコードについても、可能であれば新しい API を使用するように書き換えることを推奨します。]

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

解説(Remarks)

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

プリセットフラグには Windows Vista 以降が必要です。
モードフラグは、チューナーの現在のオーディオモードを表します。プリセットフラグは、オーディオ信号が変化した場合に将来有効になる設定を表します。副音声番組は利用できないことが多く、利用できる場合もモノラルのみであることがあります。アプリケーションはプリセットフラグを使用することで、ユーザーが希望する言語を保存しつつ、その言語が利用できないときにも妥当な動作を提供できます。

以降の解説では、IAMTVAudio の各メソッドがこれらのフラグをどのように解釈するかを説明します。

IAMTVAudio::put_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_STEREO | AMTVAUDIO_PRESET_LANG_B を設定したとします。現在の番組が、ステレオの言語 A またはモノラルの言語 B で利用できるとします。このとき、そのフラグが優先されるため、ドライバーは言語 B (モノラル) を選択します。その後、番組が言語 A でしか利用できない CM に切り替わったとします。言語 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; }

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum TVAudioMode : int {
    AMTVAUDIO_MODE_MONO = 1,
    AMTVAUDIO_MODE_STEREO = 2,
    AMTVAUDIO_MODE_LANG_A = 16,
    AMTVAUDIO_MODE_LANG_B = 32,
    AMTVAUDIO_MODE_LANG_C = 64,
    AMTVAUDIO_PRESET_STEREO = 512,
    AMTVAUDIO_PRESET_LANG_A = 4096,
    AMTVAUDIO_PRESET_LANG_B = 8192,
    AMTVAUDIO_PRESET_LANG_C = 16384
} TVAudioMode;
public enum TVAudioMode : int
{
    AMTVAUDIO_MODE_MONO = 1,
    AMTVAUDIO_MODE_STEREO = 2,
    AMTVAUDIO_MODE_LANG_A = 16,
    AMTVAUDIO_MODE_LANG_B = 32,
    AMTVAUDIO_MODE_LANG_C = 64,
    AMTVAUDIO_PRESET_STEREO = 512,
    AMTVAUDIO_PRESET_LANG_A = 4096,
    AMTVAUDIO_PRESET_LANG_B = 8192,
    AMTVAUDIO_PRESET_LANG_C = 16384,
}
Public Enum TVAudioMode As Integer
    AMTVAUDIO_MODE_MONO = 1
    AMTVAUDIO_MODE_STEREO = 2
    AMTVAUDIO_MODE_LANG_A = 16
    AMTVAUDIO_MODE_LANG_B = 32
    AMTVAUDIO_MODE_LANG_C = 64
    AMTVAUDIO_PRESET_STEREO = 512
    AMTVAUDIO_PRESET_LANG_A = 4096
    AMTVAUDIO_PRESET_LANG_B = 8192
    AMTVAUDIO_PRESET_LANG_C = 16384
End Enum
import enum

class TVAudioMode(enum.IntEnum):
    AMTVAUDIO_MODE_MONO = 1
    AMTVAUDIO_MODE_STEREO = 2
    AMTVAUDIO_MODE_LANG_A = 16
    AMTVAUDIO_MODE_LANG_B = 32
    AMTVAUDIO_MODE_LANG_C = 64
    AMTVAUDIO_PRESET_STEREO = 512
    AMTVAUDIO_PRESET_LANG_A = 4096
    AMTVAUDIO_PRESET_LANG_B = 8192
    AMTVAUDIO_PRESET_LANG_C = 16384
// TVAudioMode
pub const AMTVAUDIO_MODE_MONO: i32 = 1;
pub const AMTVAUDIO_MODE_STEREO: i32 = 2;
pub const AMTVAUDIO_MODE_LANG_A: i32 = 16;
pub const AMTVAUDIO_MODE_LANG_B: i32 = 32;
pub const AMTVAUDIO_MODE_LANG_C: i32 = 64;
pub const AMTVAUDIO_PRESET_STEREO: i32 = 512;
pub const AMTVAUDIO_PRESET_LANG_A: i32 = 4096;
pub const AMTVAUDIO_PRESET_LANG_B: i32 = 8192;
pub const AMTVAUDIO_PRESET_LANG_C: i32 = 16384;
// TVAudioMode
const (
	AMTVAUDIO_MODE_MONO int32 = 1
	AMTVAUDIO_MODE_STEREO int32 = 2
	AMTVAUDIO_MODE_LANG_A int32 = 16
	AMTVAUDIO_MODE_LANG_B int32 = 32
	AMTVAUDIO_MODE_LANG_C int32 = 64
	AMTVAUDIO_PRESET_STEREO int32 = 512
	AMTVAUDIO_PRESET_LANG_A int32 = 4096
	AMTVAUDIO_PRESET_LANG_B int32 = 8192
	AMTVAUDIO_PRESET_LANG_C int32 = 16384
)
const
  AMTVAUDIO_MODE_MONO = 1;
  AMTVAUDIO_MODE_STEREO = 2;
  AMTVAUDIO_MODE_LANG_A = 16;
  AMTVAUDIO_MODE_LANG_B = 32;
  AMTVAUDIO_MODE_LANG_C = 64;
  AMTVAUDIO_PRESET_STEREO = 512;
  AMTVAUDIO_PRESET_LANG_A = 4096;
  AMTVAUDIO_PRESET_LANG_B = 8192;
  AMTVAUDIO_PRESET_LANG_C = 16384;
// TVAudioMode
pub const AMTVAUDIO_MODE_MONO: i32 = 1;
pub const AMTVAUDIO_MODE_STEREO: i32 = 2;
pub const AMTVAUDIO_MODE_LANG_A: i32 = 16;
pub const AMTVAUDIO_MODE_LANG_B: i32 = 32;
pub const AMTVAUDIO_MODE_LANG_C: i32 = 64;
pub const AMTVAUDIO_PRESET_STEREO: i32 = 512;
pub const AMTVAUDIO_PRESET_LANG_A: i32 = 4096;
pub const AMTVAUDIO_PRESET_LANG_B: i32 = 8192;
pub const AMTVAUDIO_PRESET_LANG_C: i32 = 16384;
const
  AMTVAUDIO_MODE_MONO* = 1
  AMTVAUDIO_MODE_STEREO* = 2
  AMTVAUDIO_MODE_LANG_A* = 16
  AMTVAUDIO_MODE_LANG_B* = 32
  AMTVAUDIO_MODE_LANG_C* = 64
  AMTVAUDIO_PRESET_STEREO* = 512
  AMTVAUDIO_PRESET_LANG_A* = 4096
  AMTVAUDIO_PRESET_LANG_B* = 8192
  AMTVAUDIO_PRESET_LANG_C* = 16384
enum TVAudioMode : int {
    AMTVAUDIO_MODE_MONO = 1,
    AMTVAUDIO_MODE_STEREO = 2,
    AMTVAUDIO_MODE_LANG_A = 16,
    AMTVAUDIO_MODE_LANG_B = 32,
    AMTVAUDIO_MODE_LANG_C = 64,
    AMTVAUDIO_PRESET_STEREO = 512,
    AMTVAUDIO_PRESET_LANG_A = 4096,
    AMTVAUDIO_PRESET_LANG_B = 8192,
    AMTVAUDIO_PRESET_LANG_C = 16384,
}
#define global AMTVAUDIO_MODE_MONO     0x1
#define global AMTVAUDIO_MODE_STEREO   0x2
#define global AMTVAUDIO_MODE_LANG_A   0x10
#define global AMTVAUDIO_MODE_LANG_B   0x20
#define global AMTVAUDIO_MODE_LANG_C   0x40
#define global AMTVAUDIO_PRESET_STEREO 0x200
#define global AMTVAUDIO_PRESET_LANG_A 0x1000
#define global AMTVAUDIO_PRESET_LANG_B 0x2000
#define global AMTVAUDIO_PRESET_LANG_C 0x4000