Win32 API 日本語リファレンス
ホームMedia.Audio.XAudio2 › IXAudio2MasteringVoice

IXAudio2MasteringVoice

COM
継承元IXAudio2Voice自前メソッド開始 vtbl19

公式ドキュメント

mastering voice は、オーディオ出力デバイスを表すために使用されます。

解説(Remarks)

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)

メソッド 1

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 19 HRESULT GetChannelMask(DWORD* pChannelmask)

このボイスのチャネルマスクを返します。

pChannelmaskDWORD*outこのボイスのチャネルマスクを返します。これは WAVEFORMATEXTENSIBLE 構造体の dwChannelMask メンバーに対応します。

戻り値

このメソッドは値を返しません。

解説(Remarks)

pChannelMask 引数は、オーディオシステムから報告されるスピーカー配置内の各種チャネルのビットマスクです。この情報は、X3DAudioInitializeSpeakerChannelMask パラメーターに必要です。

X3DAUDIO.H ヘッダーは、これらのチャネルマスクをデコードするための多数の SPEAKER_ 位置定義を宣言しています。

例:

SPEAKER_STEREO // SPEAKER_FRONT_LEFT (0x1) | SPEAKER_FRONT_RIGHT (0x2) 

SPEAKER_5POINT1 // SPEAKER_FRONT_LEFT (0x1) | SPEAKER_FRONT_RIGHT (0x2)
                                    // | SPEAKER_FRONT_CENTER (0x4)
                                    // | SPEAKER_LOW_FREQUENCY (0x8)
                                    // | SPEAKER_BACK_LEFT (0x10) | SPEAKER_BACK_RIGHT (0x20)
Note DirectX SDK 版の XAUDIO では、出力デバイスのチャネルマスクは IXAudio2::GetDeviceDetails メソッドを通じて取得していましたが、このメソッドは Windows 8 以降には存在しません。

プラットフォーム要件

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

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IXAudio2MasteringVoice "{}"
#usecom global IXAudio2MasteringVoice IID_IXAudio2MasteringVoice "{}"
#comfunc global IXAudio2MasteringVoice_GetChannelMask  19 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。