繁体   English   中英

将播放按钮更改为单击时暂停

[英]Change play button to pause on click

我正在使用 Xcode 11 Swift 构建应用程序,我想在我的应用程序中添加 mp3 文件,到目前为止我已经完成了

在此处输入图片说明

但我只想显示一个按钮,比如当用户点击播放按钮时应该显示暂停按钮,反之亦然,我怎样才能得到这个? 这是我播放 mp3 文件的代码

 @IBAction func Play(_sender: Any) {
           player.play()
 }

 @IBAction func Stop(_sender: Any) {
           player.stop()
 }

let audioPlayer = Bundle.main.path(forResource: "chalisa", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPlayer!)) as URL

您可以在一个函数中完成:

// Note: you should change sender type
@IBAction func buttonPressed(_ sender: UIButton) {
    if player.isPlaying {
        player.stop()
        sender.setImage(yourPlayImage, for: .normal)
    } else {
        player.play()
        sender.setImage(yourPauseImage, for: .normal)
    }
}

您应该保存播放器的状态(或者询问它是否可以接受)。 然后根据状态更新按钮:

enum PlayerState {
    case playing
    case stopped

    mutating func toggle() {
        switch self {
        case .playing: self = .stopped
        case .stopped: self = .playing
        }
    }
}

var state = PlayerState.stopped {
    didSet {
        switch state {
        case .playing: player.play()
        case .stopped: player.stop()
        }
    }
}

@IBAction func buttonDidTouch(_ sender: Any) { state.toggle() }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM