iOS - системные звуки не воспроизводятся
Я использую системный звук для своего рода уведомления моих пользователей в приложении. Раньше все работало как надо. Я использовал
AudioServicesPlaySystemSound(1009);
Я получаю коды с этого сайта и выбираю 1009. Позже он перестал работать, не воспроизводя звуки, когда это нужно делать. Я проверил и увидел, что я должен использовать это:
AudioServicesPlaySystemSoundWithCompletion(theSoundID, ^{
AudioServicesDisposeSystemSoundID(theSoundID);
});
Я использовал это с 1009 и не работал. Я реорганизовал это как:
NSURL *fileURL = [NSURL URLWithString:@"/System/Library/Audio/UISounds/sms-received3.caf"]; //filename can include extension e.g. @"bang.wav"
if (fileURL)
{
SystemSoundID theSoundID;
OSStatus error = AudioServicesCreateSystemSoundID((__bridge CFURLRef)fileURL, &theSoundID);
if (error == kAudioServicesNoError)
{
AudioServicesPlaySystemSoundWithCompletion(theSoundID, ^{
AudioServicesDisposeSystemSoundID(theSoundID);
});
}
}
До сих пор не работает. (Я проверил, существует файл или нет, он существует. Я также проверяю, находится ли телефон в беззвучном режиме или нет, это не так). Однако во время выполнения я захожу в "Настройки"> "Звуки" и играю с уровнем громкости звонка и оповещений. Затем я продолжаю (не перезагружаю) использование приложения, и оно воспроизводит звуки. После остановки и запуска снова начинается ошибка. Даже при получении звуков он не работает непрерывно.
Это может быть о iOS10, я не знаю. Что я должен делать? Спасибо!
PS: я включил <AudioToolbox/AudioToolbox.h>
1 ответ
Пожалуйста, попробуйте, установив AVAudioSession
категория
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[audioSession setCategory: AVAudioSessionCategoryPlayback error:&err];
AudioServicesPlaySystemSound(1009);