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

IXAudio2SourceVoice

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

メソッド 10

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

vtbl 19 HRESULT Start(DWORD Flags, DWORD OperationSet)
FlagsDWORDin再生開始時の動作フラグ。現状は予約済みのため0を指定する。
OperationSetDWORDin操作を遅延適用する操作セット識別子。即時適用はXAUDIO2_COMMIT_NOW。
vtbl 20 HRESULT Stop(DWORD Flags, DWORD OperationSet)
FlagsDWORDin停止時の動作フラグ。XAUDIO2_PLAY_TAILSでテール部を再生し続ける。
OperationSetDWORDin操作を遅延適用する操作セット識別子。即時適用はXAUDIO2_COMMIT_NOW。
vtbl 21 HRESULT SubmitSourceBuffer(XAUDIO2_BUFFER* pBuffer, XAUDIO2_BUFFER_WMA* pBufferWMA)
pBufferXAUDIO2_BUFFER*in再生待ち行列へ追加するオーディオデータを記述するXAUDIO2_BUFFERへのポインター。
pBufferWMAXAUDIO2_BUFFER_WMA*inoptionalWMA圧縮データ用の追加情報を記述するXAUDIO2_BUFFER_WMAへのポインター。非WMA時はNULL。
vtbl 22 HRESULT FlushSourceBuffers()
vtbl 23 HRESULT Discontinuity()
vtbl 24 HRESULT ExitLoop(DWORD OperationSet)
OperationSetDWORDin操作を遅延適用する操作セット識別子。即時適用はXAUDIO2_COMMIT_NOW。
vtbl 25 void GetState(XAUDIO2_VOICE_STATE* pVoiceState, DWORD Flags)
pVoiceStateXAUDIO2_VOICE_STATE*out現在の再生状態を受け取るXAUDIO2_VOICE_STATEへのポインター。
FlagsDWORDin取得内容を制御するフラグ。XAUDIO2_VOICE_NOSAMPLESPLAYEDでサンプル数取得を省略する。
vtbl 26 HRESULT SetFrequencyRatio(FLOAT Ratio, DWORD OperationSet)
RatioFLOATin周波数比(ピッチ)を指定するFLOAT値。1.0が原音速、2.0で1オクターブ上昇。
OperationSetDWORDin操作を遅延適用する操作セット識別子。即時適用はXAUDIO2_COMMIT_NOW。
vtbl 27 void GetFrequencyRatio(FLOAT* pRatio)
pRatioFLOAT*out現在の周波数比を受け取るFLOATへの出力ポインター。
vtbl 28 HRESULT SetSourceSampleRate(DWORD NewSourceSampleRate)
NewSourceSampleRateDWORDin新たなソースサンプリングレートをHz単位のDWORDで指定する。ボイスは停止かつバッファー空である必要がある。

HSP用 COM定義

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

出力引数:
#define global IID_IXAudio2SourceVoice "{}"
#usecom global IXAudio2SourceVoice IID_IXAudio2SourceVoice "{}"
#comfunc global IXAudio2SourceVoice_Start                19 int,int
#comfunc global IXAudio2SourceVoice_Stop                 20 int,int
#comfunc global IXAudio2SourceVoice_SubmitSourceBuffer   21 var,var
#comfunc global IXAudio2SourceVoice_FlushSourceBuffers   22
#comfunc global IXAudio2SourceVoice_Discontinuity        23
#comfunc global IXAudio2SourceVoice_ExitLoop             24 int
#comfunc global IXAudio2SourceVoice_GetState             25 var,int
#comfunc global IXAudio2SourceVoice_SetFrequencyRatio    26 float,int
#comfunc global IXAudio2SourceVoice_GetFrequencyRatio    27 var
#comfunc global IXAudio2SourceVoice_SetSourceSampleRate  28 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。