iOS - 系统无法播放

时间:2017-06-15 06:13:12

标签: ios objective-c audio system-sounds

我正在使用系统声音在应用中向我的用户发送一种通知。以前,它应该是应有的。我正在使用

    AudioServicesPlaySystemSound(1009);

我从this site获取代码并选择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 个答案:

答案 0 :(得分:0)

请尝试设置AVAudioSession的类别

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[audioSession setCategory: AVAudioSessionCategoryPlayback  error:&err];
AudioServicesPlaySystemSound(1009);