Ich mache ein Soundboard mit Swift. Es funktioniert gut, aber ich versuche, eine Überprüfung, ob AVAudioPlayer-Instanz spielt, und wenn ja, um es zu stoppen. Die Sounds werden in einer Tabellenansicht aufgelistet, die die Daten aus einem Array abruft, in dem ich meine Sound-Klasse (mit 2 Variablen, Titel und Sound-URL) abspeichere.Schnelle Überprüfung, ob AVAudioPlayer abstürzt
Ich habe meine AVAudioPlayer und AVAudioSession sowie meine Sounds Array auf meinem Viewcontroller Klasse:
var session = AVAudioSession.sharedInstance()
var audioPlayer = AVAudioPlayer()
var sounds: [Sound] = []
und ich die Audio-Wiedergabe implementieren, wenn die App Benutzer eine Zeile wie das wählt:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if audioPlayer.playing {
audioPlayer.stop()
} else {
var sound = self.sounds[indexPath.row]
var baseString : String = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as String
var pathComponents = [baseString, sound.url]
var audioNSURL = NSURL.fileURLWithPathComponents(pathComponents)
self.audioPlayer = AVAudioPlayer(contentsOfURL: audioNSURL, error: nil)
self.audioPlayer.play()
}
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
Aber wenn ich auf die Reihe tippe die App stürzt ab und alles was ich bekomme ist "(lldb)"
Haben Sie eine Idee, was passiert? Oder mache ich das völlig falsch?
Vielen Dank im Voraus