从 Cloudkit 获取音乐文件
Posted
技术标签:
【中文标题】从 Cloudkit 获取音乐文件【英文标题】:Fetch music file from Cloudkit 【发布时间】:2017-02-10 14:37:00 【问题描述】:我尝试将用于获取图像资产的代码转换为获取 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#>)
【问题讨论】:
【参考方案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
【讨论】:
以上是关于从 Cloudkit 获取音乐文件的主要内容,如果未能解决你的问题,请参考以下文章
从 CloudKit 获取包括 CKReference 的数据