2015-06-20 2 views
1

Я всегда получаю фатальную ошибку: неожиданно нашел нуль при развертывании необязательного значения. но если я смотрю переменную fileURL, она имеет некоторые значения. пожалуйста, дайте мне знать, что я пропустил здесь:Неустранимая ошибка: неожиданно найден nil во время разворачивания необязательного значения (Swift)

Ошибка:

Optional(http:/files.parsetfss.com/461a4eda-d153-4d46-bd85-28ddd355a94c/tfss-03d4eb57-51cb-424d-8c90-2d8a89429203-00255--How_To_Build_A_Loving_Family.mp3 -- file:///) 
fatal error: unexpectedly found nil while unwrapping an Optional value 

Код:

 if let audioFile = object["audioFile"] as? PFFile { 

      var audioPath: String = audioFile.url! 

      var fileURL = NSURL(fileURLWithPath: audioPath as String) 
      println(fileURL) 
      audioPlayer = AVAudioPlayer(contentsOfURL: fileURL, error: nil) 

      audioPlayer.volume = volumeSlider.value 

      audioPlayer.play() 

     } 
+0

отладки кода и попытаться выяснить, какая линия это даст вам фатальная ошибка –

+0

HTTP:/файлов не является допустимым URL, может быть, это проблема , в противном случае показать, где он сбой – Volker

+0

здесь выдает ошибку: audioPlayer = AVAudioPlayer (contentsOfURL: fileURL, error: nil) –

ответ

0

Этот код работает отлично с URL:

let url = "http://files.parsetfss.com/461a4eda-d153-4d46-bd85-28ddd355a94c/tfss-03d4eb57-51cb-424d-8c90-2d8a89429203-00255--How_To_Build_A_Loving_Family.mp3" 

    let soundData = NSData(contentsOfURL: NSURL(string: url)!) 

    var error: NSError? 
    self.audioPlayer = AVAudioPlayer(data: soundData, error: &error) 
    if audioPlayer == nil 
    { 
     if let e = error 
     { 
      println(e.localizedDescription) 
     } 
    } 

    audioPlayer!.volume = 1.0 
    audioPlayer!.prepareToPlay() 

    audioPlayer!.play() 

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

Вот еще один способ, чтобы играть песню вживую:

let url = audioFile.url! 
let playerItem = AVPlayerItem(URL:NSURL(string:url)) 
player = AVPlayer(playerItem:playerItem) 
player.rate = 1.0; 
player.play() 
+0

Спасибо. Сначала я пошел с подходом AVplayer, чтобы воспроизвести песню в прямом эфире, но у меня были проблемы с подключением UIslider с текущим временем аудио. Можете ли вы дать предложения о том, как я могу это сделать? audioSlider.value = Float (audioPlayer.currentTime) –

+0

Вы можете сделать это следующим образом: 'audioSlider.value = Float (CMTimeGetSeconds (player.currentTime())) –

+0

Ничего себе, что действительно помогает. как установить текущее время на значение uislider. musicPlayer.currentTime = NSTimeInterval (musicSlider.value) –

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

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