在音频文件中记录我的应用程序生成的所有声音(而不是从麦克风)

时间:2014-06-26 12:16:50

标签: ios xcode audio avaudiorecorder

我的屏幕就像一个乐器。有些按钮可播放声音文件。

我想录制当用户按下单个音频文件中的按钮时播放的声音,以便我可以将该文件保存为mp4或其他音频格式。

你能指导我如何以一种简单的方式实现这一目标吗?

我能够使用带有AVAudioRecorder

的麦克风进行录音

我认为,录音方法使用麦克风作为音源,但我希望它能使用"音频输出"相当于我的应用程序用作源。

2 个答案:

答案 0 :(得分:6)

您可以尝试使用 The Amazing Audio Engine 。您可以通过Cocoapods

安装它
pod 'TheAmazingAudioEngine'

或通过git克隆

git clone --depth=1 https://github.com/TheAmazingAudioEngine/TheAmazingAudioEngine.git

可以在this的帮助下将声音录制到文件中。

因此,如果您想录制应用输出,只需使用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];
}

答案 1 :(得分:-3)

使用屏幕录像机,例如CamtasiaFraps。 如果需要,您可以停止录制并以多种格式提取声音,而无需使用麦克风...... 还有一些开源......