现在我有一个循环遍历文件播放器音频单元阵列,并告诉它们在音频文件中开始播放的位置。 (这工作)在这个相同的循环中,我有以下代码来告诉单位什么时候开始播放(-1使他们在下一个渲染周期中播放)。问题在于他们不是同时开始,因为第一首曲目在我有机会告诉第三首曲目播放之前就开始播放。我想说的是“第一首歌曲,正好在5个周期中播放,第二曲目正好在4个周期中播放,第三曲目正好在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));
重新启动AUGraph是矫枉过正。你不需要那样做。 – 2017-09-22 00:10:49