2015-01-12 2 views
2

Я хочу воспроизвести два звуковых файла в моем приложении Swift. «C1_bip.aif» и «false.aif». Они оба находятся в одной папке в проекте.Swift AVAudioPlayer не воспроизводит звук

Но когда я запускаю приложение, звук C1_bip воспроизводится, а ложный звук отсутствует, и он печатает ошибку на консоли.

Звуковые файлы имеют одинаковый тип файла, и я могу воспроизводить их как в проводнике проекта в Xcode.

if let path = NSBundle.mainBundle().pathForResource("C1_bip", ofType: "aif") { 
     audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path), 
     fileTypeHint: "aif", error: nil) 

     if let sound = audioPlayer { 

      sound.prepareToPlay() 
      sound.play() 
     } 
    } 
    else { 
     println("Error") 
    } 



    if let path = NSBundle.mainBundle().pathForResource("false", ofType: "aif") { 
     audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path), 
     fileTypeHint: "aif", error: nil) 

     if let sound = audioPlayer { 

      sound.prepareToPlay() 
      sound.play() 
     } 
    } 
    else { 
     println("Error") 
    } 
+0

этот код работает отлично для меня .. так проверить файлы, которые вы добавили в проект. –

+0

Я не знаю, что случилось. Я помещаю файл в папку проекта, и он не работает. Но тот, который был там до того, как работает отлично ... –

+0

с этим кодом, я могу играть в оба файла. поэтому вы должны попытаться снова добавить файл false.aif –

ответ

1

Вот что я сделал в моем тестовом проекте:

let musicPath = NSBundle.mainBundle().pathForResource("bgmusic", ofType: "mp3") 
    let url = NSURL(fileURLWithPath: musicPath!) 

    do{ 
     audioPlayer = try AVAudioPlayer(contentsOfURL: url) 
    }catch _ { 
     audioPlayer = nil 
    } 
    audioPlayer.numberOfLoops = -1 
    audioPlayer.prepareToPlay() 
    audioPlayer.play() 

И она работает хорошо :)

Смежные вопросы