"无法转换类型的值' AVAudioPlayer.Type'预期的论证类型"

时间:2018-01-11 07:07:14

标签: swift avaudioplayer xcode9

我在播放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

    }

}

1 个答案:

答案 0 :(得分:0)

委托方法本身不应该调用委托方法。

audioPlayerDidFinishPlaying这是一个委托方法。你应该实现它(你有)并将self设置为音频播放器的委托。该方法将由AVAudioPlayer在适当的时间调用,即完成播放声音时。

所以你应该删除对audioPlayerDidFinishPlaying的调用,一切都应该正常。从它的外观来看,你正在实现一个开始/停止播放按钮。如果您想在播放器完成播放时执行某些操作,则可以将self设置为audioPlayer.delegate中的viewDidLoad。并且在完成播放声音时将调用该方法。