iOS 9中的AVAudioSession.sharedInstance()。setCategory

时间:2019-04-10 07:39:23

标签: swift avplayer avaudiosession

我想在手机处于静音模式时播放音频。

我可以使用以下语句在> = iOS 10中执行此操作:

try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, mode: AVAudioSessionModeDefault, options: .mixWithOthers)

但是我该如何在iOS 9上执行此操作? Xcode告诉我,此语句仅在iOS 10或更高版本中可用。

我尝试了以下操作,但不起作用:

enter image description here

1 个答案:

答案 0 :(得分:0)

实际上,方法setCategory在最近的Xcodes和SDK中正在迅速改变。

您需要找到正确的组合。

对于Xcode 10.2(快速语言版本4.2、5)

        if #available(iOS 10.0, *) {
            //Xcode 10.2 (Swift Language Version 4.2,5)
            //Xcode 10.1 (Swift Language Version 4.2)
            try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: .mixWithOthers)
        } else {
            //Xcode 10.2 (Swift Language Version 4.2,5)
            try AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)
        }

对于Xcode 10.2(快速语言版本4.0) 或Xcode 10.1(Swift语言版本4.0)

        if #available(iOS 10.0, *) {
            //Xcode 10.2 (Swift Language Version 4.0)
            //Xcode 10.1 (Swift Language Version 4.0)
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, mode: AVAudioSessionModeDefault, options: .mixWithOthers)
        } else {
            //Xcode 10.2 (Swift Language Version 4.0)
            //Xcode 10.1 (Swift Language Version 4.0)
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .mixWithOthers)
        }

(不幸的是,我找不到使用Xcode 10.1(Swift语言版本4.2)为iOS 9调用setCategory的方法。)

无论如何,请重新检查您的Swift语言版本设置:

enter image description here