Mix_PlayChannel function in SDL_mixer



如文档所述,Mix_PlayChannel函数有3个参数:

  • channel:要播放的频道,或-1表示第一个空闲的未保留的频道。
  • chunk: Sample to play.
  • loops:循环的数目,-1表示无限循环。在这里通过一个播放两次样本(1循环)。

我不明白channel参数的含义。文档中引用的是哪个通道?

他们正在寻址混合音频通道。

由于SDL_mixer是一个多通道音频混频器库,您可以一次访问多个混合音频通道,从而同时独立播放多个声音。这就是为什么它需要您指定在哪个频道上播放。对于参数-1,它将只占用第一个空闲通道。

当你试图只停止一个播放声音时,这一点很重要:

int Mix_HaltChannel(int channel);

这是你如何混合/分配一定数量的通道来工作:

int Mix_AllocateChannels(int amountChannels);

也有一个单一的音乐通道,它可以被寻址,而不指定一个通道,也将独立播放:

int Mix_PlayMusic(Mix_Music *music, int loops);

最新更新