我在播放audioPlayerDidFinish功能时出现问题。我已将AVAudioPlayerDelegate添加到我的视图控制器类并定义了该函数。当我调用该函数时,我得到了错误"无法转换类型的值' AVAudioPlayer.Type'预期的论证类型"我究竟做错了什么?如果我需要添加更多代码供您查看,请告诉我。
func buttonPressed() {
if currentSound == sound {
currentSound = "None"
activateBlankCircle()
audioPlayer.stop()
}
else {
currentSound = sound
audioPlayer.prepareToPlay()
activateRedCircle()
playSound()
audioPlayerDidFinishPlaying(AVAudioPlayer, successfully: Bool)
//Cannot convert value of type 'AVAudioPlayer.Type' to expected argument type
}
}
答案 0 :(得分:0)
委托方法本身不应该调用委托方法。
audioPlayerDidFinishPlaying
这是一个委托方法。你应该实现它(你有)并将self
设置为音频播放器的委托。该方法将由AVAudioPlayer
在适当的时间调用,即完成播放声音时。
所以你应该删除对audioPlayerDidFinishPlaying
的调用,一切都应该正常。从它的外观来看,你正在实现一个开始/停止播放按钮。如果您想在播放器完成播放时执行某些操作,则可以将self
设置为audioPlayer.delegate
中的viewDidLoad
。并且在完成播放声音时将调用该方法。