ios 如何知道AVAudioPlayer是否已暂停?

8xiog9wr  于 2023-01-27  发布在  iOS
关注(0)|答案(4)|浏览(106)

要发现AVAudioPlayer对象是否正在播放,只需使用isPlaying属性:

if audioPlayer.isPlaying {
    // ...
}

但是,如果音频播放器未播放,如何区分暂停和停止?
我不能使用currentTime属性来实现这个目的,这是因为如果我调用stop(),那么当前时间将停留在调用时的时间,这与调用pause()时的行为相同。

ljo96ir5

ljo96ir51#

我认为这很简单,只要在视图控制器类中保留一个BOOL属性,当单击播放/恢复按钮时将其设置为YES,当按下停止/暂停按钮时将其设置为NO。

krugob8w

krugob8w2#

它由以下this link组成:

if ((player.rate != 0) && (player.error == nil)) {
        // player is playing
    }else {
//notplaying
}
7bsow1i6

7bsow1i63#

只需添加布尔变量,并根据您检查是否暂停音频.
例如:

var isAudioPaused = false//Add this on top

//Pause audio
func pauseAudio() {
    if isAudioPaused == false {
        if audioPlayer?.isPlaying == true {//Check is audio playing
            audioPlayer?.pause()//Pause audio
            isAudioPaused = true
            btnPauseAudio.setTitle("Play Audio", for: .normal)
        }
    } else {
        audioPlayer?.play()//Play audio
        isAudioPaused = false
        btnPauseAudio.setTitle("Pause Audio", for: .normal)
    }
}
7gcisfzg

7gcisfzg4#

您可以通过代码player.isPlaying && player.duration != 0检查播放器是否暂停

func buttonOneClicked(button: UIButton)  {
    if player.isPlaying && player.duration != 0 {
       button.setImage(UIImage(systemName: "stop"), for: .normal)
       player.pause()
    }
    else{
       button.setImage(UIImage(systemName: "play"), for: .normal)
       player.play()
    }
}

相关问题