Я объединил две аудиосистемы, одну из которых я установил по расписанию.Когда я просто играю, это работает.Но когда я использую RenderToFile, чтобы экспортировать и начать воспроизводить аудио, которое я экспортировал, scheduleTime не работает.
NSString *path1 = [[NSBundle mainBundle]pathForResource:@"test" ofType:@"mp4"];
NSString *path2 = [[NSBundle mainBundle]pathForResource:@"music_1" ofType:@"mp3"];
AKAudioFile *file1 = [[AKAudioFile alloc]initForReading:[NSURL fileURLWithPath:path1] error:nil];
AKAudioFile *file2 = [[AKAudioFile alloc]initForReading:[NSURL fileURLWithPath:path2] error:nil];
AKAudioPlayer *player1 = [[AKAudioPlayer alloc]initWithFile:file1 looping:NO lazyBuffering:YES error:nil completionHandler:nil];
AKAudioPlayer *player2 = [[AKAudioPlayer alloc]initWithFile:file2 looping:NO lazyBuffering:YES error:nil completionHandler:nil];
player2.scheduledTime = player1.duration;
AKMixer *mixer = [[AKMixer alloc]init:@[player1,player2]];
AudioKit.output = mixer;
AVAudioFormat *format = [[AVAudioFormat alloc]initWithCommonFormat:AVAudioPCMFormatFloat64 sampleRate:44100 channels:2 interleaved:NO];
NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithDictionary:format.settings];
[settings setObject:@(kAudioFormatMPEG4AAC) forKey:AVFormatIDKey];
AKAudioFile *file = [[AKAudioFile alloc]initForWriting:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/justTest.aac",MineAudioURL]] settings:settings error:nil];
[AudioKit renderToFile:file duration:player1.duration+player2.duration error:nil prerender:^{
[player1 start];
[player2 start];
}];
Когда я играю, player2
будет воспроизводиться после того, как player1
закончится.Но когда я использую RenderToFile
, чтобы экспортировать и начать воспроизведение аудио, которое я экспортировал, оба воспроизводятся одновременно.И это не то, что я хочу.Я хочу, чтобы audio2
играл, когда audio1
закончился.