Sto facendo una tavola armonica con Swift. Funziona alla grande, ma sto cercando di verificare se l'istanza di AVAudioPlayer è in esecuzione, e se sì per fermarlo. I suoni sono elencati in una tableview che ottiene i dati da una matrice in cui memorizzo la mia classe Sound (che ha 2 variabili, titolo e url del suono).Controllo rapido se AVAudioPlayer sta giocando in crash
ho il mio AVAudioPlayer e AVAudioSession così come i miei suoni serie sulla mia classe ViewController:
var session = AVAudioSession.sharedInstance()
var audioPlayer = AVAudioPlayer()
var sounds: [Sound] = []
ed a implementare la riproduzione audio quando l'utente applicazione seleziona una riga del genere:
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)
}
Ma quando tocco la riga l'app si arresta in modo anomalo e tutto quello che sto ottenendo è "(lldb)"
Hai idea di cosa sta succedendo? O sto sbagliando tutto questo?
Grazie in anticipo