使用iPhone SDK同时播放和录制声音?

我正在尝试检测来自麦克风的输入并播放可以打开或关闭的声音,但是当麦克风监听器处于活动状态时,它总是在播放.

我已经在viewDidLoad方法中初始化了我的AVAudioSession,如下所示:

AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *err = nil;
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];
[session setActive:YES error:&err];

然后设置应该播放的声音:

NSURL *activeUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audio_file.caf", [[NSBundle mainBundle] resourcePath]]];
activePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:activeUrl error:nil];
activePlayer.numberOfLoops = -1;
activePlayer.currentTime = 0;
activePlayer.volume = -1.5;

我正在使用SCListener课程进行录音.当我在手机上运行时,录音机工作正常,但即使我在viewDidLoad方法中调用play,声音也不会循环播放.

有任何想法吗?

最佳答案 非常感谢您的回复.我确实在一段时间之前想到了这一点,但从来没有对此进行更新.结果很简单.您必须将AVAudioSession的类别设置为AVAudioSessionCategoryPlayAndRecord.

几乎所有需要的文档都在类引用中:

http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html

点赞