首页 > 解决方案 > iOS 9 中的 AVAudioSession.sharedInstance().setCategory

问题描述

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

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

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

但是我如何为 iOS 9 做到这一点?Xcode 告诉我此语句仅适用于 iOS 10 或更高版本。

我尝试了以下但它不工作:

在此处输入图像描述

标签: swiftavplayeravaudiosession

解决方案


事实上,该方法setCategory在最近的 Xcode 和 SDK 中正在迅速变化。

你需要找到正确的组合。

对于 Xcode 10.2(Swift 语言版本 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(Swift 语言版本 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)
        }

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

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

在此处输入图像描述


推荐阅读