Microsoft DirectX 8.0 (C++)

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_E_NOT_INIT
E_POINTER

注意

トラックが空の場合、このメソッドは DMUS_S_END を返す。

トラックは、優先順位が中低度のスレッド内にメッセージを生成する。ファイルのデータをストリーム化するコードなど、時間のかかる関数を、トラックの Play メソッド内から呼び出すことができる。ただし、安全なマルチスレッド化のためのガイドラインに従うこと。

動作環境

  ヘッダー : dmplugin.h で宣言。

参照

IDirectMusicTrack8::PlayEx