gpt4 book ai didi

ios - 检查是否正在播放然后更改按钮上的图标

转载 作者:行者123 更新时间:2023-11-28 23:22:05 25 4
gpt4 key购买 nike

我目前正在使用以下方法在用户按下播放视频时更改按钮图标。

但是,我需要一些东西来检查媒体当前是否正在播放并使用正确的图标更新它?

我想知道最好的方法是什么。

@IBAction func playVideo(_ sender: Any) {
if(defaultsKeys.musicplayer_connected == "1"){
self.defaults.set("0", forKey: defaultsKeys.musicplayer_connected)

// (sender as! UIButton).setTitle("Pause", for: [])
(sender as! UIButton).setBackgroundImage(UIImage(systemName: "pause.circle"), for: UIControl.State.normal)
MusicPlayer.shared.startBackgroundMusic()

}else
{
self.defaults.set("1", forKey: defaultsKeys.musicplayer_connected)
// (sender as! UIButton).setTitle("Play", for: [])

(sender as! UIButton).setBackgroundImage(UIImage(systemName: "play.circle"), for: UIControl.State.normal)
MusicPlayer.shared.stopBackgroundMusic()
//self.player.pause()
}

}

最佳答案

创建一个枚举来存储播放器的状态

enum PlayerState {
case playing,paused
}

然后创建一个属性观察器,它将根据值的变化更新您的按钮

   var playerStateChanged : PlayerState = .playing {
didSet {
switch playerStateChanged {
case .playing:
if #available(iOS 13.0, *) {
yourBtn.setBackgroundImage(UIImage(systemName: "play.circle"), for: .normal)
} else {
// Fallback on earlier versions
}
case .paused:
if #available(iOS 13.0, *) {
yourBtn.setBackgroundImage(UIImage(systemName: "pause.circle"), for: .normal)
} else {
// Fallback on earlier versions
}
}
}
}

现在在您的 IBAction 中,更新 playerStateChanged 的​​值,它将相应地设置按钮图像。

@IBAction func playVideo(_ sender: Any) {
// get if player is playing or not and set the value of playerStateChanged
playerStateChanged = .paused
}

关于ios - 检查是否正在播放然后更改按钮上的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com