Я разрабатываю приложение для записи и хочу воспроизвести звук при запуске записи.
К сожалению, похоже, что начиная с iOS 5 невозможно воспроизвести системный звук, когда активен AVCaptureSession
с аудиоустройством.
Вот соответствующая часть кода, который я использую
- (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?