IDirectMusicTrack8::Play
トラックの演奏を行う。このメソッドは、メッセージの作成と送信など、セグメントの演奏時にトラックが行う必要のある任意の操作を実行する。
HRESULT Play(
void* pStateData,
MUSIC_TIME mtStart,
MUSIC_TIME mtEnd,
MUSIC_TIME mtOffset
DWORD dwFlags,
IDirectMusicPerformance* pPerf,
IDirectMusicSegmentState* pSegSt,
DWORD dwVirtualID
);
パラメータ
- pStateData
- IDirectMusicTrack8::InitPlay メソッドが返した状態データへのポインタ。データのフォーマットと使用方法は、トラックに固有である。
- mtStart
- 開始タイム。
- mtEnd
- 終了タイム。
- mtOffset
- IDirectMusicPerformance8::SendPMsg に渡されるすべてのメッセージに追加されるオフセット。
- dwFlags
- この呼び出しの状態を示すフラグ。「DMUS_TRACKF_FLAGS」を参照すること。値 0 は、Play の呼び出しによって、再生が前の呼び出しから継続されることを意味する。
- pPerf
- メッセージの割り当てと送信に使用されるパフォーマンス。
- pSegSt
- このトラックが所属するセグメント状態。IDirectMusicSegmentState8::QueryInterface メソッドは、IDirectMusicGraph8::StampPMsg を呼び出す場合など、IDirectMusicGraph8 インターフェイスを取得するために呼び出すことができる。
- dwVirtualID
- トラックの仮想識別子。IDirectMusicPerformance8::SendPMsg から渡されるすべてのメッセージの dwVirtualTrackID メンバ (「DMUS_PMSG」を参照) にこの値を書き込まなければならない。
戻り値
成功した場合は S_OK または DMUS_S_END を返す。
失敗した場合は、次のいずれかのエラー値を返す。
注意
トラックが空の場合、このメソッドは DMUS_S_END を返す。
トラックは、優先順位が中低度のスレッド内にメッセージを生成する。ファイルのデータをストリーム化するコードなど、時間のかかる関数を、トラックの Play メソッド内から呼び出すことができる。ただし、安全なマルチスレッド化のためのガイドラインに従うこと。
ヘッダー : dmplugin.h で宣言。
参照
IDirectMusicTrack8::PlayEx