Tao.Sdl SDK Documentation

SdlMixer.Mix_PlayChannelTimed Method 

Play loop and limit by time.

[Visual Basic]
Public Shared Function Mix_PlayChannelTimed( _
   ByVal channel As Integer, _
   ByVal chunk As IntPtr, _
   ByVal loops As Integer, _
   ByVal ticks As Integer _
) As Integer
[C#]
public static int Mix_PlayChannelTimed(
   int channel,
   IntPtr chunk,
   int loops,
   int ticks
);

Parameters

channel
Channel to play on, or -1 for the first free unreserved channel.
chunk
Sample to play.
loops
Number of loops, -1 is infinite loops. Passing one here plays the sample twice (1 loop).
ticks
Millisecond limit to play sample, at most. If not enough loops or the sample chunk is not long enough, then the sample may stop before this timeout occurs. -1 means play forever.

Return Value

the channel the sample is played on. On any errors, -1 is returned.

Remarks

If the sample is long enough and has enough loops then the sample will stop after ticks milliseconds. Otherwise this function is the same as Mix_PlayChannel.

Binds to C-function in SDL_mixer.h

int Mix_PlayChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ticks)
            

Example

            // play sample on first free unreserved channel
                    // play it for half a second
                    // Mix_Chunk *sample; //previously loaded
                    if(Mix_PlayChannelTimed(-1, sample, -1 , 500)==-1)
                {
                    printf("Mix_PlayChannel: %s\n",Mix_GetError());
                    // may be critical error, or maybe just no channels were free.
                    // you could allocated another channel in that case...
                }
            

See Also

SdlMixer Class | Tao.Sdl Namespace | Mix_PlayChannel | Mix_FadeInChannelTimed | Mix_FadeOutChannel | Mix_ReserveChannels