我的应用程序中有一些警告声但我真的需要背景音乐(例如Spotify)才能继续在后台运行。
我解决了这个问题[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
但是,在静音模式下,我的AVAudioPlayer
静音但声音很重要,即使在静音模式下也是如此。我读到AudioServicesPlaySystemSound
忽略静默模式,但它没有,至少在iOS9上没有。
还有其他可能吗?哦,请浪费你的时间,比如说"我会讨厌这个用户","它不被称为SILENT模式",...这是一个编程页面,而不是哲学课。
答案 0 :(得分:6)
音频会话类别 AVAudioSessionCategoryAmbient 将遵循文档中所述的响铃/静音开关 -
AVAudioSessionCategoryAmbient 声音播放非主要应用的类别 - 也就是说,您的应用可以在关闭声音的情况下成功使用...
...通过屏幕锁定和静音开关(在iPhone上称为响铃/静音开关)使您的音频静音。
我建议使用混合选项(例如
)尝试更适合的类别[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
withOptions:AVAudioSessionCategoryOptionMixWithOthers
error:nil];
AVAudioSessionCategoryPlayback 类别将忽略文档中提到的静默开关 -
使用此类别时,您的应用音频会继续将静音开关设置为静音或屏幕锁定。
答案 1 :(得分:0)
我将代码放在按钮上以播放音频:
这也适用于更新的iOS版本(我在iOS 12中使用该版本)
(以静音模式播放背景音乐,同时单击按钮时同时在您的应用中播放音频)
import AVFoundation
var audioPlayer = AVAudioPlayer()
@IBAction func btnAudioClickableAct(_ sender: Any) {
let audioSession = AVAudioSession.sharedInstance()
try!audioSession.setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.mixWithOthers)
if let path = Bundle.main.path(forResource: "activityAudio", ofType: "mp3") {
let filePath = NSURL(fileURLWithPath:path)
audioPlayer = try! AVAudioPlayer.init(contentsOf: filePath as URL)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
}