我正在开发一个录音应用程序,我想在录音开始时播放声音。
AVCaptureSession
不幸的是,从 iOS 5 开始,当带有音频设备的设备处于活动状态时,它似乎无法播放系统声音。
这是我正在使用的代码的相关部分
- (void)viewDidLoad {
[super viewDidLoad];
NSURL * soundURL = [[NSBundle mainBundle] URLForResource:@"recording-starts" withExtension:@"aif"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL, &_recStartSound);
//...
if ([self.captureManager setupSession]) {
// ...
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self.captureManager.session startRunning];
});
// ...
}
}
后来,我只是打电话AudioServicesPlaySystemSound(_recStartSound)
,没有任何进展。但是,如果我在会话设置之前进行相同的调用,声音会按预期播放。
我发现了这个错误报告,它与我的问题以及这个和这个问题完全相关,但我在其中都找不到任何解决方法。
如何在开始 AV 录制之前播放短声音?