繁体   English   中英

AVAudioPlayer pause()行为异常

[英]AVAudioPlayer pause() not behaving as expected

我通过AVAudioPlayer的pause()函数看到了这种意外行为。 当我单击“暂停”按钮时,音频实际上应该在当前时间暂停,并在调用play()时从中恢复。 但是在这里,当我点击pause()时,音频会暂停,而当我单击play()时,音频将从头开始播放。 pause()的行为类似于stop()。

var player: AVAudioPlayer = AVAudioPlayer()

@IBAction func PlayPauseAudioButton(_ sender: UIButton) {
    if sender.currentImage == #imageLiteral(resourceName: "play-btn") {
        sender.setImage(#imageLiteral(resourceName: "pause-btn"), for: .normal)

        do {
            let audioPath = Bundle.main.path(forResource: "aug-ps-raj", ofType: "mp3")
            try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
        } catch {
            // Catch the error
        }
        player.play()

    } else {
        sender.setImage(#imageLiteral(resourceName: "play-btn"), for: .normal)
        player.pause()

    }
}

问题在于,每次单击播放按钮时,您都在创建一个新的播放器实例。 相反,您可以提前创建该AVAudioPlayer实例,并且仅在按钮单击处理程序中调用play()和pause()。

暂无
暂无

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

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