让声音播放到结束后如何隐藏按钮?

时间:2015-12-23 20:42:35

标签: ios swift uibutton

我在播放之前录制的音频后试图隐藏按钮。

当我按下"停止按钮"一切顺利,因为以下代码:

@IBAction func stopAllSounds(sender: UIButton) {
        audioPlayer.stop()
        audioEngine.stop()
        stopButton.hidden = true
    }

我的问题是当我让音频完成时。在这种情况下,"停止按钮"不会消失。

为了向您提供更多信息,以下代码负责"播放按钮":

@IBAction func playSlow(sender: UIButton) {
    /* Good practise to stop audioPlayer */
    audioPlayer.stop()
    audioPlayer.rate = 0.5
    audioPlayer.currentTime = 0.0
    /* Use audioPlayer here */
    audioPlayer.play()
    stopButton.hidden = false
}

在此之后我想要"停止按钮"隐藏。 此功能中的stopButton.hidden = false是使"停止按钮"声音在播放时可见。

1 个答案:

答案 0 :(得分:0)

AVAudioPlayer具有委托的属性。在这个委托中,你有一个方法,一旦audioPlayer声音结束就被调用:

AVAudioPlayerDelegate

所以你能做的就是拥有并反对实现它的委托 func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) { stopButton.hidden = true; } 并实现隐藏按钮的方法。

{{1}}