現在、ファイルプレーヤーオーディオユニットの配列をループして、オーディオファイルのどの位置で再生を開始するかを指示するループがあります。(これは機能します)この同じループで、ユニットに再生を開始するタイミングを指示する次のコードがあります(-1を指定すると、次のレンダリングサイクルで再生されます)。問題は、3番目のトラックに再生を指示する前に、最初のトラックの再生が開始されるため、それらが同時に開始されないことです。私が言いたいのは、「トラック1、正確に5サイクルで再生する、トラック2で正確に4サイクルで再生する、トラック3で正確に3サイクルで再生する、などです。これらは同時に再生されます。これは正しいアプローチですか?もしそうなら、startTime.mSampleTimeにどのような値を設定しますか?これを行う方法を説明するドキュメントが見つかりません。ありがとうございます。
// tell the file player AU when to start playing (-1 sample time means next render cycle)
AudioTimeStamp startTime;
memset (&startTime, 0, sizeof(startTime));
startTime.mFlags = kAudioTimeStampSampleTimeValid;
startTime.mSampleTime = -1;
AudioUnitSetProperty(fileUnitArray[mycount], kAudioUnitProperty_ScheduleStartTimeStamp, kAudioUnitScope_Global, 0, &startTime, sizeof(startTime));