iOS - 系统声音未播放

Posted

技术标签:

【中文标题】iOS - 系统声音未播放【英文标题】:iOS - System sounds not playing 【发布时间】:2017-06-15 06:13:11 【问题描述】:

我正在使用系统声音在应用中向我的用户发出某种通知。以前,它按应有的方式工作。我正在使用

    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】:

请设置AVAudioSession的分类试试

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

【讨论】:

其他系统听起来正常吗?还是只有 1009 有问题? 不,我试过其他代码,发现没关系。 上面的代码非常适合我!我认为您的问题与 Code 无关。 请让我知道音频播放的最后更改 你在模拟器上运行吗?

以上是关于iOS - 系统声音未播放的主要内容,如果未能解决你的问题,请参考以下文章

使用 Monotouch 播放默认 iOS 系统声音

在 iOS 中播放系统声音

声音文件未在本地通知 iOS7 上播放

捕获音频/视频后无法播放系统声音

ios:在模拟器中播放系统声音,但在 iphone 上没有

iOS - 无法在后台播放声音