我正在使用Swift使用Xcode制作应用程序,并且我的应用程序中有mp3文件,并且在其中添加了播放和暂停按钮,但是我的问题是,当我单击播放按钮时,显示了暂停按钮,但是当mp3文件完成播放时,仍然暂停按钮显示,我希望它在音频完成后自动重新变为播放按钮。这是我的代码
@IBAction func buttonPressed(_ sender: UIButton) {
if player.isPlaying {
player.stop()
sender.setImage(UIImage(named:"play.png"),for: .normal)
} else {
player.play()
sender.setImage(UIImage(named:"pause.png"),for: .normal)
}
}
谢谢
将此添加到viewDidLoad
内
NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying(_:)) , name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
然后
@objc func playerDidFinishPlaying( _ note: Notification) {
yourBtn.setImage(UIImage(named:"play.png"),for: .normal)
}
您需要在类中实现AVAudioPlayerDelegate并使用此功能:
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
button.setImage(UIImage(named:"pause.png"),for: .normal)
}