如文档所述,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);