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);
Другие вопросы по тегам