Ich habe diese Datei und möchte diese Datei in einer anderen Klasse verwenden, aber das funktioniert nicht. Ich nehme an, dass dies daran liegt, dass ich die AVAudioPlayer
in dieser Datei nicht initialisiert habe, also ging ich damit um, aber eine Nachricht erschien, "Call can throw, but it is not marked with 'try' and the error is not handled"
Meine Implementierung war nicht erfolgreich. Ich habe keine Ahnung, wie ich damit umgehen soll. Könnten Sie auf die Fehler bei der Initialisierung hinweisen und mir einen Code zur Verfügung stellen, der funktioniert? Danke im Voraus.So initialisieren Sie AVAudioPlayer in Swift
class SoundManager: AVAudioPlayer {
var _Sound: AVAudioPlayer!
override init() {
let url = NSBundle.mainBundle().URLForResource("rain", withExtension: "wav")
super.init(contentsOfURL: url!)
}
func playSound() {
if (url == nil) {
print("Could not find the file \(_Sound)")
}
do {
_Sound = try AVAudioPlayer(contentsOfURL: url!, fileTypeHint: nil)
}
catch let error as NSError { print(error.debugDescription)
}
if _Sound == nil {
print("Could not create audio player")
}
_Sound.prepareToPlay()
_Sound.numberOfLoops = -1
_Sound.play()
}
}
Arbeitete !! Ich dachte AVAuiodPlayer als Unterklasse zu implementieren war notwendig. Ich bin gespannt auf welche Situation, sollte ich es dann benutzen? – bagels
@ryohei Wenn Sie diesen Manager 'as' AVAudioPlayer verwenden möchten, verwenden Sie die Unterklasse. Es wird die Eigenschaft und Funktionen der Oberklasse inihrit. Wenn es um Manager-Klasse geht, bevorzuge ich, Klasse ohne Unterklasse zu erstellen, und geben Sie eine Instanz von AVAudioPlayer, wie Sie es in Zeile 'var _Sound: AVAudioPlayer!' Getan haben. Vergessen Sie nicht, meine Antwort als nützlich zu markieren ~~ – BrikerMan
Oh, ich verstehe. Ich bin glücklich, das zu lösen! Danke für deine Antwort :) – bagels