2015-09-14 6 views
0

В настоящее время я могу добавить текущую песню на iPhone в свое приложение, но я пытаюсь воспроизвести песню из Parse на основе названия песни в приложении, но я получаю нулевую ошибку. Зачем?Почему я получаю нулевую ошибку?

func playit(sender: UIButton!){ 
    if let nowPlaying = musicPlayer.nowPlayingItem{ 
    let title = nowPlaying[MPMediaItemPropertyTitle] as? String 
    let artist = nowPlaying[MPMediaItemPropertyTitle] as? String 

    println(title! + artist!) 


     let query = PFQuery(className: "Songs") 
     query.whereKey("SongName", equalTo: title!) 
     query.findObjectsInBackgroundWithBlock { 
      (objects: [AnyObject]?, error: NSError?) -> Void in 
      if error == nil { 
       // The find succeeded. 
       println("Successfully retrieved \(objects!.count) song(s).") 
       // Do something with the found objects 
       if let objects = objects as? [PFObject] { 
        for object in objects { 
         println(object.objectId) 

         let objects: PFObject = object as PFObject 
         let parseAudio: PFFile = objects.valueForKey("Songs") as! PFFile 
         let audioPath: String = parseAudio.url! 
         let urlParse: NSURL = NSURL(string: audioPath)! 

         player = AVPlayer(URL: urlParse) 
         println(player) 
         player.play() 
        } 
       } 
      } else { 
       // Log details of the failure 
       println("Error: \(error!) \(error!.userInfo!)") 
      } 

     } 

    } 
} 
+0

Проверьте, что ваш ** urlParse ** содержит значение или нет –

+0

Как я могу это сделать, если он продолжает сбой? – blee

+0

Используйте «Исключение точки останова». Он высадит вас на линии, где он рухнет. –

ответ

0

Не зная, что точная ошибка, я могу только сказать, что ваши проблемы, скорее всего, находится в этом блоке:

  let objects: PFObject = object as PFObject 
        let parseAudio: PFFile = objects.valueForKey("Songs") as! PFFile 
        let audioPath: String = parseAudio.url! 
        let urlParse: NSURL = NSURL(string: audioPath)! 

Преобразование parseAudio в строку для NSURL не получает содержание файл для вашего медиаплеера. Попробуйте что-то вроде этого:

let parseAudio: PFFile = objects.valueForKey("Songs") as? PFFile 
parseAudio?.getDataInBackgroundWithBlock({ (data, error) -> Void in 

     if error == nil { 
      // do what you need to with the music file which is contained in `data` 
       let fullParseAudioFile = data 

     } else if error != nil { 

     println(error!.localizedDescription) 

     } 

    }) 

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

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