我正在尝试检测来自麦克风的输入并播放可以打开或关闭的声音,但是当麦克风监听器处于活动状态时,它总是在播放.
我已经在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.
几乎所有需要的文档都在类引用中: