创建 Swift AVAudioPlayer 错误

Creating Swift AVAudioPlayer error

正在尝试使用以下代码添加多个玩家:

class AVAudioPlayerPool: NSObject {

class func playerWithURL(url : NSURL) -> AVAudioPlayer? {
    let availablePlayers = players.filter { (player) -> Bool in return   player.playing == false && player.url == url
}
    if let playerToUse = availablePlayers.first {
        print("Reusing player for \(url.lastPathComponent)")
        return playerToUse
    }
    var error : NSError?

    if let newPlayer = AVAudioPlayer(contentsOfURL:url, error: &error){
        print("Creating new player for url \(url.lastPathComponent)")
        players.append(newPlayer)
        return newPlayer
    }
    else{
        print("Couldn't load \(url.lastPathComponent):\(error)")
        return nil
    }


 }
}

但我一直收到来自此行代码的错误 "Argument labels '(contentsOfURL:, error:)' do not match any available overloads" "if let newPlayer = AVAudioPlayer(contentsOfURL:url, error: &error)" 我已尝试使用 try!但我无法消除错误,只是在插入 "try!" 时收到不同的错误,我们将不胜感激。

AVAudioPlayer(contentsOfURL:url, error: &error) 不是 Swift 中 AVAudioPlayer 的有效构造函数。相反,您必须使用 AVAudioPlayer(contentsOfURL:url),这可能会引发错误。有多种方法可以处理错误(请参阅 Swift Error Handling),但您可能需要 try?.

if let newPlayer = try? AVAudioPlayer(contentsOfURL: url) {
    print("Creating new player for url \(url.lastPathComponent)")
    players.append(newPlayer)
    return newPlayer
} else {
    print("Couldn't load \(url.lastPathComponent):\(error)")
    return nil
}