Получить музыкальный файл из Cloudkit
Я пытаюсь преобразовать код, который я использую, чтобы получить изображение актива, чтобы получить mp3-файл на cloudkit. Тем не менее, я не могу понять часть данных. Я использую эту библиотеку для воспроизведения аудио. Он имеет только один класс с именем "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). Ниже код получает URL CkAsset, так что я могу поместить его в 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