AVAudioPlayer pas la lecture audio en Swift

J'ai ce code dans un très simple, vue unique de demande rapide dans mon ViewController:

var audioPlayer = AVAudioPlayer()

@IBAction func playMyFile(sender: AnyObject) {

    let fileString = NSBundle.mainBundle().pathForResource("audioFile", ofType: "m4a")
    let url = NSURL(fileURLWithPath: fileString)
    var error : NSError?
    audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
    audioPlayer.delegate = self
    audioPlayer.prepareToPlay()
    if (audioPlayer.isEqual(nil)) {
        println("There was an error: (er)")
    } else {
        audioPlayer.play()
        NSLog("working")
    }

J'ai ajouté import AVFoundation et audioPlayer est une variable globale. Lorsque j'exécute le code, il n'a l'impression de "travailler", de sorte qu'il traverse sans erreurs, mais aucun son n'est joué. L'appareil n'est pas dans le silence.

  • quel est le but de audioPlayer.delete(self)?
  • quel est le but de audioPlayer = AVAudioPlayer() si vous êtes juste de le remplacer plus tard?
  • ne jamais jamais jamais jamais jamais cochez la case "erreur" directement comme ça. Regardez pour voir si audioPlayer est nul. Si c'est le cas, il y a une erreur et vous pouvez vérifier error.
  • pour en faire une variable globale pour s'assurer qu'il n'est pas supprimé de la mémoire avant de jouer le fichier lors de l'exécution de la playMyFile méthode. J'ai enlevé et il suffit de le changer en une variable locale, mais qui n'ont pas de résoudre le problème.
  • ne jamais ne jamais appeler NSURL(string: sur un chemin de fichier. Utilisation fileURLWithPath, c'est ce qu'il est.
  • La variable locale serait bien pire. Mon point est simplement que la définition de la propriété à un lecteur audio est tout simplement un gaspillage de frais généraux. C'est pourquoi vous devez néant comme un espace réservé.

InformationsquelleAutor Kenneth | 2014-07-16