Я пытался экспортировать аудио с помощью RenderToFile, но когда я установил scheduleTime, он не работает - PullRequest
2 голосов
/ 13 июня 2019

Я объединил две аудиосистемы, одну из которых я установил по расписанию.Когда я просто играю, это работает.Но когда я использую 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 закончился.

...