mixPlayChannel function

int mixPlayChannel(
  1. int channel,
  2. Pointer<MixChunk> chunk,
  3. int loops
)

Play an audio chunk on a specific channel.

If the specified channel is -1, play on the first free channel (and return -1 without playing anything new if no free channel was available).

If a specific channel was requested, and there is a chunk already playing there, that chunk will be halted and the new chunk will take its place.

If loops is greater than zero, loop the sound that many times. If loops is -1, loop "infinitely" (~65000 times).

Note that before SDL_mixer 3.0.0, this function was a macro that called Mix_PlayChannelTimed() with a fourth parameter ("ticks") of -1. This function still does the same thing, but promotes it to a proper API function. Older binaries linked against a newer SDL_mixer will still call Mix_PlayChannelTimed directly, as they are using the macro, which was available since the dawn of time.

\param channel the channel on which to play the new chunk. \param chunk the new chunk to play. \param loops the number of times the chunk should loop, -1 to loop (not actually) infinitely. \returns which channel was used to play the sound, or -1 if sound could not be played.

\since This function is available since SDL_mixer 3.0.0

extern SDL_DECLSPEC int SDLCALL Mix_PlayChannel(int channel, Mix_Chunk *chunk, int loops)

Implementation

int mixPlayChannel(int channel, Pointer<MixChunk> chunk, int loops) {
  final mixPlayChannelLookupFunction = libSdl3Mixer.lookupFunction<
      Int32 Function(Int32 channel, Pointer<MixChunk> chunk, Int32 loops),
      int Function(
          int channel, Pointer<MixChunk> chunk, int loops)>('Mix_PlayChannel');
  return mixPlayChannelLookupFunction(channel, chunk, loops);
}