Platform SDK: DirectX

Step 5: Play the MIDI File

[Visual Basic]

This tutorial pertains only to applications written in C++. See DirectMusic Visual Basic Tutorials.

[C++]

Now that all of the preparatory work has been done, playing the music is simplicity itself.

IDirectMusicSegmentState* g_pSegState;
if (g_pMIdiSEG)
{
    g_pPerf->PlaySegment(g_pMIDISeg, 0, 0, &g_pSegState);
}
 

The call to IDirectMusicPerformance::PlaySegment takes the following parameters:

If you want the file to be played more than once, before calling PlaySegment you must call the IDirectMusicSegment::SetRepeats method.

If you want to stop the music before it has played to the end or finished its repeats, you do so by using the IDirectMusicPerformance::Stop method. The simplest way to use this method is simply to request that all music currently playing or cued to play be stopped immediately:

g_pPerf->Stop(NULL, NULL, 0, 0)
 

Alternatively, you can supply a pointer to the current segment or segment state in order to stop playback of just one segment, or one instance of that segment.

Next: Step 6: Shut Down DirectMusic