2016-03-31 9 views
0

Ich habe einen Sound namens speeding.mp3 und ich versuche, eine AVAudioPayer Instanz mit ihm zu machen, indem diese in der Wurzel der Klasse zu tun:Swift - AVAudioPlayer nicht spielen Sound

let speedingAudioPlayer = try! AVAudioPlayer(contentsOfURL: NSBundle.mainBundle().URLForResource("speeding", withExtension: "mp3")!) 

Dann, wenn ich die App es laufen wirft einen Fehler, aber ich weiß nicht, warum das passiert. Die Datei speeding.mp3 befindet sich in den Bundle-Ressourcen in den Buildphasen, sodass sie in Ordnung sein sollte. Wenn ich versuche, die URL im Simulator auszudrucken und sie in Safari einzufügen, lädt und spielt sie die Datei wie gewohnt. Ich importiere AVFoundation in die Klasse und das Framework in das Projekt.

Antwort

1

Verwenden Sie diesen Code-Snippet Ihre Fehler zu debuggen,

if let URL = NSBundle.mainBundle().URLForResource("speeding", withExtension: "mp3") { 
    do { 
     let speedingAudioPlayer = try AVAudioPlayer(contentsOfURL: URL) 
    } catch let error as NSError { 
     print(error.localizedDescription) 
    } 
} else { 
    print("No such file exist") 
} 
+0

Es stoppt nur in der dritten Zeile und kommt mit einem Fehler, der sagt 'Thread 1: Haltepunkt 1.2' –

+0

Konnte Sie die Ausnahme auflisten, was genau sagt es? – Sandeep

+0

Es sagt nichts anderes und es passiert nur zur Laufzeit. –

0
import UIKit 
import AVFoundation 

class CustomAudioPlayer { 
    var audioPlayer : AVAudioPlayer! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    playSound("sound_file_name") 
    } 

    func playSound(soundName: String) 
    { 
    let alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(soundName, ofType: "mp3")!) 
    do{ 
     audioPlayer = try AVAudioPlayer(contentsOfURL:alertSound) 
     audioPlayer.prepareToPlay() 
     audioPlayer.play() 
    }catch { 
     print("Error getting the audio file") 
    } 
    } 
} 

diesen Code Versuchen Sie, den Ton für die Wiedergabe.