我正在尝试构建一个播放声音的iOS应用。有一个On和Off按钮。当我们进入应用程序时,按钮工作正常。但是,如果我们在后台工作,它就无法正常工作。
假设声音处于关闭状态,我们在应用程序外部(应用程序仍然在后台),现在如果我们打开任何其他应用程序并返回到我的应用程序,声音应该处于关闭状态,但是它打开了。对于其他状态也是如此(从ON到OFF)。
这是我正在使用的代码。
func SetUpSound() {
if let path = Bundle.main.path(forResource: "firenew", ofType: "mp3") {
let filePath = NSURL(fileURLWithPath:path)
player = try! AVAudioPlayer.init(contentsOf: filePath as URL)
player.numberOfLoops = -1 //logic for infinite loop
player.prepareToPlay()
player.play()
}
let audioSession = AVAudioSession.sharedInstance()
try!audioSession.setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.duckOthers)
}
以下代码适用于ON和OFF。
@IBAction func firePressed(_ sender: UIButton) {
if fireOnoff.isHidden == true {
fireOnoff.isHidden = false
infoPopup.isHidden = true
popViewslider.isHidden = true
videoContolpopup.isHidden = true
volumePopup.isHidden = true
}
if player.isPlaying {
player.pause()
onoffLabel.textAlignment = .center
onoffLabel.text = "Off"
} else {
player.numberOfLoops = -1
player.play()
onoffLabel.textAlignment = .center
onoffLabel.text = "On"
}
toggleButton(button: sender, onImage: #imageLiteral(resourceName: "selectedfire "), offImage: #imageLiteral(resourceName: "unselectedfire"))
}
我正在为iOS和tvOS构建。两者面临同样的问题。 你对解决这个问题有什么建议吗?在此先感谢!!
编辑:我已经在背景模式功能中打开了音频,AirPlay和画中画功能。