现在我有一个循环遍历文件播放器音频单元的数组,并告诉他们在音频文件中的哪个位置开始播放。(这有效)在同一个循环中,我有以下代码来告诉单元何时开始播放(-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));