是否可以使用 AVAudioRecorder 录制音频并同时使用 AVAudioPlayer 播放另一个音频文件?
问问题
986 次
1 回答
0
iOS 6 是可能的。我自己在 iOS 5.x 中这样做时遇到了问题。没有关于 5.x 之前版本的信息。
为此,必须将 AudioSession-category 设置为AVAudioSessionCategoryPlayAndRecord
NSError *error = nil;
NSLog(@"Setting category for AudioSession to AVAudioSessionCategoryPlayAndRecord");
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
if (!success) {
NSLog(@"Error setting category for AudioSession:\n\terror: %@", error.localizedDescription);
}
AVAudioRecorder 的设置如下:
NSString *fileToRecordPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"record.m4a"];
NSURL *fileToRecordURL = [NSURL fileURLWithPath:fileToRecordPath];
NSDictionary *settings = @{AVFormatIDKey: [NSNumber numberWithInt:kAudioFormatMPEG4AAC],
AVSampleRateKey: [NSNumber numberWithFloat:44100.0],
AVNumberOfChannelsKey: [NSNumber numberWithInt:1]};
NSError *error = nil;
AVAudioRecorder *audioRecorder = [[AVAudioRecorder alloc] initWithURL:self.fileURL settings:settings error:&error];
if (!audioRecorder) {
NSLog(@"Error initializing AVAudioRecorder:\n\terror: %@", error.localizedDescription);
}
audioRecorder.delegate = self;
[audioRecorder prepareToRecord];
在 AVAudioPlayer 中播放另一个音频文件(相同格式,m4a)时,在 iOS 6 中一切正常。在 iOS 5 中,行为很奇怪。播放音频或音频播放暂停时,无法开始录音。当首先开始录制时,可以同时播放(另一个文件)。
经过一番搜索后,我找不到正确设置它的方法。虽然我不敢相信,这是 iOS 中的一个错误,但缺少设置。
所以这适用于 iOS 6,但非常感谢对 iOS 5 问题的帮助;o)
于 2013-06-27T11:50:56.653 回答