一連のサウンドを事前に再生中にキューに入れることができる「ビートボックス」スタイルのサウンドエンジンを作成するにはどうすればよいでしょうか。ただし、これらのサウンドは、ギャップや一時的な中断なしに再生する必要があります。
OpenALを調べて、alSourceQueueBuffers()を使用して、一連の事前にバッファリングされたクリップを含むソースを作成しようとしましたが、探していたものが達成されませんでした。
AudioFileOpenURLを使用してオーディオファイルをロードし、次にAudioFileReadBytesを使用してchar配列にロードし、alGenBuffersを使用してバッファーを作成してから、alBufferDataを使用してバッファリングします。
次に、alGenSourcesを使用してソースを作成し、そのソースへの参照を保持します。次に、alSourceQueueBuffers(sourceId、1、&bufferId)を数回呼び出します。ここで、bufferIdは、「queueClip」メソッドに渡されるパラメーターであり、いくつかの異なるクリップを参照します。
これを実行し、alSourcePlayを呼び出した後、2つのクリップが連続して再生されているように見えますが、何も聞こえません(3つのオーディオファイルをロードし、alSourceQueueBuffersを使用してランダムにソースに追加しました。数回)。
また、ソースを更新したり、新しいサウンドを追加したり、再生済みのサウンドを削除してメモリをクリーンアップしたりするための最良の方法を知る必要があります。