iOS Swift:声音不播放

iOS Swift:声音不播放,ios,iphone,swift,audio,Ios,Iphone,Swift,Audio,在我的iOS Swift应用程序中,我试图在点击按钮时播放声音 func playSound() { var audioPlayer = AVAudioPlayer() let soundURL = NSBundle.mainBundle().URLForResource("doorbell", withExtension: "mp3") audioPlayer = AVAudioPlayer(contentsOfURL: soundURL

在我的iOS Swift应用程序中,我试图在点击按钮时播放声音

func playSound()
    {
        var audioPlayer = AVAudioPlayer()
        let soundURL = NSBundle.mainBundle().URLForResource("doorbell", withExtension: "mp3")
        audioPlayer = AVAudioPlayer(contentsOfURL: soundURL, error: nil)
        audioPlayer.play()
}
我正在iOS iPhone模拟器中运行该应用程序。 我在应用程序中添加了doorbell.mp3。在调试模式下,我可以看到soundURL有一个值,而不是nil


没有错误,但声音不会播放。

您只需将audioPlayer的声明移出您的方法。试着这样做:

Swift 3或更高版本

var audioPlayer = AVAudioPlayer()

func playSound() throws {
    let url = Bundle.main.url(forResource: "doorbell", withExtension: "mp3")!
    audioPlayer = try AVAudioPlayer(contentsOf: url)
    audioPlayer.prepareToPlay()
    audioPlayer.play()
}


检查计算机上的音量Arbitor>音量正常,我可以在应用程序外播放doorbell.mp3文件。所以要么是我的代码错了,要么是与模拟器有关……Leo>是的,它起作用了……谢谢,如果你能补充一个小的解释,解释一下为什么搬出时会起作用,那就太好了。如果你在方法中声明你的播放器,它将在执行完你的方法后立即消失。
do { 
    try playSound() 
} catch { 
    print(error)
}