2017-02-10 74 views
0

我尝试转换我用于获取图像资源的代码以获取cloudkit上的mp3文件。但是,我无法确定数据部分。我正在使用这个库来播放音频。它只有一个名为“AudioPlayer”的类,所以如果我想在本地文件夹上播放音乐,就足够声明它了。从Cloudkit获取音乐文件

https://github.com/tbaranes/AudioPlayerSwift

func loadSong(completion:@escaping (_ song: AudioPlayer?) ->()) { 
      // 1 
      DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async { 
       var song: AudioPlayer! 
       defer { 
        completion(song) 
       } 
       // 2 
       guard let asset = self.record["Song_File"] as? CKAsset else { 
        return 
       } 

       let songData: AudioPlayer 
       do { 
        songData = try Data(contentsOf: asset.fileURL) 
       } catch { 
        return 
       } 
       song = AudioPlayer(contentsOf: <#T##URL#>) 

         } 
     } 

回答

0

其实,我不能这样做清楚我想要什么。 (我想从CloudKit流下一首歌,这个人下载ckasset)。下面的代码获取CkAsset的URL,以便我可以将它放在AVPlayer中并播放它。

func loadSongURL(completion:@escaping (_ url: URL?) ->()) { 
     // 1 
     DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async { 
      var song_url: URL! 
      defer { 
       completion(song_url) 
      } 
      // 2 
      guard let asset = self.record["Song_File"] as? CKAsset else { 
       return 
      } 

      let songURL: URL 
      do { 
       print(asset.fileURL) 
       songURL = asset.fileURL 
      } catch { 
       return 
      } 
      song_url = songURL