2016-05-19 3 views
0

の作成:は、以下のコード使用して複数のプレイヤーを追加しようとしスウィフトAVAudioPlayerエラー

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 
    } 


} 
} 

を私はエラー「引数ラベル 『(contentsOfURL :,エラー:)』使用可能な任意のオーバーロードと一致しません」到来を得続けますこの行コードから "newPlayer = AVAudioPlayer(contentsOfURL:url、error:&エラー)を受け取りました。" tryを使用しようとしました!しかし、私は "試してみてください!どんな助けも高く評価されます。

答えて

0

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 
} 
+0

すてきなことに、私はスウィフトエラーをよく読んでくれました。試してみた!どうもありがとうございました! – JoeShmoe

関連する問題