IDirectMusicPerformance::PlaySegment

The IDirectMusicPerformance::PlaySegment method begins playback of a segment.

HRESULT PlaySegment(
  IDirectMusicSegment* pSegment,
  DWORD dwFlags,
  __int64 i64StartTime,
  IDirectMusicSegmentState** ppSegmentState
);
 

Parameters

pSegment
Address of the segment to play.
dwFlags
Flags that modify the method's behavior. See DMUS_SEGF_FLAGS.
i64StartTime
The time at which to begin playing the segment, adjusted to any resolution boundary specified in dwFlags. The time is in music time, unless the DMUS_SEGF_REFTIME flag is set. A value of 0 causes the segment to start playing as soon as possible.
ppSegmentState
Address of a variable to receive the segment state for this instance of the playing segment. This field may be NULL. If it is non-NULL, the segment state pointer is returned, and the application must call Release on it.

Return Values

If the method succeeds, the return value is S_OK.

If it fails, the method may return one of the following error values:

E_OUTOFMEMORY
E_POINTER
DMUS_E_NO_MASTER_CLOCK
DMUS_E_SEGMENT_INIT_FAILED
DMUS_E_TIME_PAST

Remarks

Segments should be greater than 250 milliseconds in length.

The boundary resolutions in dwFlags are relative to the currently playing primary segment.

If a primary segment is scheduled to play while another primary segment is playing, the first one will stop, unless you set the DMUS_SEGF_QUEUE flag for the second segment, in which case it will play as soon as the first one reaches its end.

For more information on the exact start time of segments, see Segment Timing. For information on how the start time of segments can be affected by tempo changes, see Reference Time vs. Music Time.

QuickInfo

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in dmusici.h.

See Also

Segments