私はSDL_Mixer(私の経験不足)に問題があります。チャンクと音楽はうまく再生され(Mix_PlayChannelとMix_PlayMusicを使用)、2つの異なるチャンクを同時に再生することは問題になりません。SDL_Mixer自体が1つのチャンクを再生していますか?
私の問題は、いくつかのchunk1を再生し、次に最初のchunk1の繰り返しを再生することです。私は素早く連続して1つのチャンクを演奏しようとしていますが、それよりもはるかに長い間隔でサウンドを繰り返し再生します。私はコンソールの出力をテストしましたが、私の演奏/ループの方法は誤りではありません。コンソールメッセージの印刷が正しいスピードでループしているのが分かります。
Mix_LoadWAV()を使用して初期化中に定期的にロードするチャンクの配列があります。私はまた、これらのチャンクを再生するために予約機能してい
Mix_Chunk *sounds[32];
:急速に連続して複数回(例えば、100msの遅延/ 10bpsに)単一サウンドを再生しようとすると
void PlaySound(int snd_id)
{
if(snd_id >= 0 && snd_id < 32)
{
if(Mix_PlayChannel(-1, sounds[snd_id], 0) == -1)
{
printf("Mix_PlayChannel: %s\n",Mix_GetError());
}
}
}
を、私は音を与えられています10bpsで機能が呼び出されているにもかかわらず、設定された時間間隔(約500ms程度/ 2bps)で再生されます。
私は既に "Mix_AllocateChannels(16);"を使用しました。私がチャンネルを割り当てたことを確認するために(私がそれを間違って使用していることを知らせてください)、それでもアレイからの単一のチャンクが一定のレートで再生を拒否します。
どのようなアイデアや助けをいただければ幸いですか、この質問をどのように投稿したかについての批評もあります。