Ios 从Cloudkit获取音乐文件
我尝试将用于获取图像资源的代码转换为在cloudkit上获取mp3文件。然而,我无法计算数据部分。我正在用这个库播放音频。它只有一个名为“AudioPlayer”的类,所以如果我想在本地文件夹中播放音乐,就可以声明它Ios 从Cloudkit获取音乐文件,ios,audio,assets,cloudkit,ckasset,Ios,Audio,Assets,Cloudkit,Ckasset,我尝试将用于获取图像资源的代码转换为在cloudkit上获取mp3文件。然而,我无法计算数据部分。我正在用这个库播放音频。它只有一个名为“AudioPlayer”的类,所以如果我想在本地文件夹中播放音乐,就可以声明它 func loadSong(完成:@escaping(uu-song:AudioPlayer?)->()){ // 1 全局(qos:DispatchQoS.QoSClass.background)。异步{ var song:音频播放器! 推迟{ 完成(歌曲) } // 2 gu
func loadSong(完成:@escaping(uu-song:AudioPlayer?)->()){
// 1
全局(qos:DispatchQoS.QoSClass.background)。异步{
var song:音频播放器!
推迟{
完成(歌曲)
}
// 2
guard let asset=self.record[“Song_File”]为?CKAsset else{
回来
}
let songData:AudioPlayer
做{
songData=try Data(contentsOf:asset.fileURL)
}抓住{
回来
}
歌曲=音频播放器(内容:)
}
}
事实上,我不能清楚地做我想做的事。(我想从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
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