現在我有一個循環遍歷文件播放器音頻單元陣列,並告訴它們在音頻文件中開始播放的位置。 (這工作)在這個相同的循環中,我有以下代碼來告訴單位什麼時候開始播放(-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