Я занимаюсь разработкой приложения для iOS, и мне нужны некоторые методы обработки звука, поэтому я использовал AudioKit, который потрясающий.Однако мне не удалось использовать AKNodeRecorder при попытке записи эффектов в аудиофайл.
Я пытался использовать AudioKitPlayground (4.5.3) для тестирования AKNodeRecorder, но получил пустой аудиофайл после записи звука, генерируемого «клавиатурой».
Поэтому я создаю проект дляiOS от Xcode (10.1), и добавьте некоторый код Objective-C следующим образом:
........
NSError *error = nil;
AudioFormatID formatId = kAudioFormatLinearPCM;
NSDictionary *dict = @{
@"AVFormatIDKey" : @(formatId),
@"AVSampleRateKey" : @(44100),
@"AVNumberOfChannelsKey" : @(2),
};
AKAudioFile *audioFile = [[AKAudioFile alloc] initForWriting:soundFileURL settings:dict error:&error];
if (error) {
NSLog(@"AKAudioFile init error: %@", error);
}
AKNodeRecorder *akNodeRecorder = [[AKNodeRecorder alloc] initWithNode:self.akMixer file:audioFile error:&error];
if (error) {
NSLog(@"AKNodeRecorder init error: %@", error);
}
[akNodeRecorder recordAndReturnError:&error];
if (error) {
NSLog(@"recording error: %@", error);
}
[self.akAudioPlayer playFrom:0.0];
if (self.isChooseBackgroundMusic) {
[self.musicPlayer playFrom:0.0];
}
[akNodeRecorder stop];
........
А вот self.akMixer выглядит так:
self.akMixer = [[AKMixer alloc] init:@[self.akAudioPlayer, self.musicPlayer]];
Но я получилтоже пустой файл.
Что-то не так в моем коде или я неправильно понял AKNodeRecorder?Любая помощь?Большое спасибо!