Запишите все звуки, сгенерированные моим приложением, в аудиофайл (не из микрофона)
У меня есть экран, похожий на инструмент. Есть кнопки, которые воспроизводят звуковые файлы.
Я хочу записать звуки, воспроизводимые при нажатии пользователем кнопок в одном аудиофайле, чтобы я мог сохранить этот файл в формате mp4 или в другом аудиоформате.
Не могли бы вы подсказать мне, как этого добиться простым способом?
Я могу записывать, используя микрофон с AVAudioRecorder
Как я думаю, метод записи использует микрофон в качестве источника, но я бы хотел, чтобы в качестве источника использовался эквивалент "аудио выхода" моего приложения.
2 ответа
Вы можете попробовать использовать http://theamazingaudioengine.com/. Вы можете установить его через Cocoapods
pod 'TheAmazingAudioEngine'
или клонировать через git
git clone --depth=1 https://github.com/TheAmazingAudioEngine/TheAmazingAudioEngine.git
Звук может быть записан в файл с помощью этого.
Поэтому, если вы хотите записать вывод приложений, просто используйте Outputreceiver:
@property (nonatomic, strong) AEAudioController *audioController;
@property (nonatomic, strong) AERecorder *recorder;
...
self.audioController = [[AEAudioController alloc] initWithAudioDescription:[AEAudioController nonInterleaved16BitStereoAudioDescription] inputEnabled:YES];
...
//start the recording
- (void) beginRecording{
self.recorder = [[AERecorder alloc] initWithAudioController:self.audioController];
NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
//the path to record to
NSString *filePath = [documentsFolder stringByAppendingPathComponent:@"AppOutput.aiff"];
//start recording
NSError *error = NULL;
if ( ![_recorder beginRecordingToFileAtPath:filePath fileType:kAudioFileAIFFType error:&error] ) {
//an error occured
return;
}
[self.audioController addOutputReceiver:self.recorder];
}
...
//end the recording
- (void)endRecording {
[self.audioController removeOutputReceiver:self.recorder];
[self.recorder finishRecording];
}
Используйте Screen Recorder, например Camtasia
или же Fraps
, Когда вы хотите, вы можете остановить запись и извлечь звук в нескольких форматах, и вам не нужно использовать микрофон... Есть также несколько открытых источников...