音频完成后更改按钮 Xcode

Posted

技术标签:

【中文标题】音频完成后更改按钮 Xcode【英文标题】:Change Button when Audio is finished Xcode 【发布时间】:2019-12-29 14:29:33 【问题描述】:

我正在使用 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)
    



谢谢

【问题讨论】:

【参考方案1】:

你需要在类中实现AVAudioPlayerDelegate

class ViewController: UIViewController, AVAudioPlayerDelegate 
   ...

并在类中使用这个函数:

func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) 
    button.setImage(UIImage(named:"pause.png"),for: .normal)

【讨论】:

@ChandNinder 在viewDidLoad() 中也设置了player.delegate = self 我只是忘了在 player.play() 之前添加 player.delegate = self 顺便说一句谢谢你的帮助,它有效

以上是关于音频完成后更改按钮 Xcode的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 的另一个屏幕上完成某个操作时更改按钮的状态?

如何在 Xcode 中制作关于音频的按钮?

Xcode:多个音频文件,单个按钮

在 xcode 中的断点处停止时,Mac 音频停止

从另一个线程更改按钮图标/切换按钮

单击后退按钮iOS 6时如何继续播放音频