我在播放之前录制的音频后试图隐藏按钮。
当我按下"停止按钮"一切顺利,因为以下代码:
@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
是使"停止按钮"声音在播放时可见。
答案 0 :(得分:0)
AVAudioPlayer具有委托的属性。在这个委托中,你有一个方法,一旦audioPlayer声音结束就被调用:
AVAudioPlayerDelegate
所以你能做的就是拥有并反对实现它的委托 func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) {
stopButton.hidden = true;
}
并实现隐藏按钮的方法。
{{1}}