swift - iOS 9 中的 AVAudioSession.sharedInstance().setCategory
问题描述
我想在手机处于静音模式时播放音频。
我可以在 >= iOS 10 中使用以下语句执行此操作:
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, mode: AVAudioSessionModeDefault, options: .mixWithOthers)
但是我如何为 iOS 9 做到这一点?Xcode 告诉我此语句仅适用于 iOS 10 或更高版本。
我尝试了以下但它不工作:
解决方案
事实上,该方法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 语言版本设置:
推荐阅读
- php - 从函数中清空全局变量
- vba - VBA 循环:将范围从多个工作表复制到多个集合位置
- javascript - 深度搜索属性值后返回对象
- elasticsearch - Elasticsearch - 如何结合来自多个领域的术语建议?
- python - 检查对象是否可见(使用当前 xlim / ylim)
- r - R-算术不尊重逻辑非运算符和运算顺序?
- python - sqlite3.OperationalError:没有这样的列:错误
- tensorflow - 张量流或pytorch中的分区矩阵乘法
- python - 表单集数据初始化
- javascript - 将音频从 youtube 流式传输到 html 音频标签