0

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

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#>)

                      }
        }
4

1 回答 1

1

实际上,我无法清楚地做我想要的。(我想从 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
于 2017-02-12T11:39:51.980 回答