我一直在尝试使用AVAudioEngine来安排多个音频文件以完美的同步方式播放,但是在收听输出时,输入节点之间似乎存在非常小的延迟.音频引擎使用以下图表实现:
//
//AVAudioPlayerNode1 -->
//AVAudioPlayerNode2 -->
//AVAudioPlayerNode3 --> AVAudioMixerNode --> AVAudioUnitVarispeed ---> AvAudioOutputNode
//AVAudioPlayerNode4 --> |
//AVAudioPlayerNode5 --> AudioTap
// |
//AVAudioPCMBuffers
//
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码加载示例并同时安排它们:
- (void)scheduleInitialAudioBlock:(SBScheduledAudioBlock *)block {
for (int i = 0; i < 5; i++) {
NSString *path = [self assetPathForChannel:i trackItem:block.trackItem]; //this fetches the right audio file path to be played
AVAudioPCMBuffer *buffer = [self bufferFromFile:path];
[block.buffers addObject:buffer];
}
AVAudioTime *time = [[AVAudioTime alloc] initWithSampleTime:0 atRate:1.0];
for (int i = 0; i < 5; i++) {
[inputNodes[i] …Run Code Online (Sandbox Code Playgroud)