2015-12-11 19 views
0

我有一個代碼來解析ios上的解析音頻編譯後,一切似乎確定和音頻文件準確同步,但當我選擇他們沒有音頻從揚聲器出來。在SWIFT 2它不是編制了其說法模棱兩可使用URL,這裏是寫在迅速的FUNC,我希望我們可以把它轉換爲SWIFT 2謝謝:解析流媒體音頻爲ios swift 2

func grabSong(){ 
    let SongQuery = PFQuery(className: "songs") 
    SongQuery.getObjectInBackgroundWithId(iDArray[SelectedSongNumber], block:{ 

     (object: PFObject?, error:NSError?)-> Void in 

     if let AudioFileURLTemp = object?.objectForKey("songFile")?.url { 

      AudioPlayer = AVPlayer(URL: NSURL(string: AudioFileURLTemp!)) 
     AudioPlayer.play() 
     } 
}) 

}

回答

0

我沒有測試了這個(我目前沒有解析任何音頻文件),但是,爲什麼不訪問pffile然後轉換爲url?這將是這個樣子:

func grabSong(){ 
     let SongQuery = PFQuery(className: "songs") 
     SongQuery.getObjectInBackgroundWithId(iDArray[SelectedSongNumber], block:{ 

      (object: PFObject?, error:NSError?)-> Void in 

      if let songFile: PFFile = object?.valueForKey("songFile") as? PFFile { 
       AudioPlayer = AVPlayer(URL: songFile.url) 
       AudioPlayer.play() 
      } 
     }) 
    } 
+0

你好,我想你的代碼,但它不是建立即時得到一個錯誤。無法將'string'類型的值轉換爲期望的參數類型'NSURL'的任何線索? –

2

沒錯這就是工作, 只有你需要檢查的隨意性,這樣的:

func grabSong() { 
    let SonQuery = PFQuery(className: "Songs") 
    SonQuery.getObjectInBackgroundWithId(idArray[SelectedSongNumber], block: { 
     (object: PFObject?, error:NSError?) -> Void in 
     if let audioFIleTemp: PFFile = object?.valueForKey("SongFile") as? PFFile { 
      AudioPlayer = AVPlayer(URL: NSURL(string: audioFIleTemp.url!)!) 
      AudioPlayer.play() 
     } 
    }) 
} 
+0

thnk你工作:) –