我正在尝试编写一个类似于手机查找器但具有完全不同的用法和调用渠道的应用程序。我能够获得用户的位置并且可以进行背景提取,但我正在努力的是在大声播放声音(即使电话是静音的),以便在他们在家中丢失时找到用户的电话。这在Android上很简单,我也想在iOS上复制它。当应用程序从前台切换到后台时,我能够播放声音:
func setupAudio(){
print("Trying to play audio")
guard let sound = NSDataAsset(name: "FeelinGood") else {
print("asset not found")
return
}
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
audioPlayer = try AVAudioPlayer(data: sound.data, fileTypeHint: AVFileTypeMPEGLayer3)
audioPlayer.play()
} catch let error as NSError {
print("error: \(error.localizedDescription)")
}
}
但是当我在收到远程通知时尝试调用该方法时,这不起作用。我通过远程通知使用我的应用程序并能够播放自定义声音,但是只有在手机未处于静音模式时才有效。
应用程序商店中有很多应用程序覆盖了静音模式,所以我非常确定有办法做到这一点,但我不知道到底是怎么回事。