我想在启动后在初始屏幕上列出并显示媒体库的歌曲。
当我第一次启动时,会显示访问媒体库的权限弹出窗口。媒体库的歌曲没有加载。初始启动时无法加载媒体库
一旦退出应用程序并再次打开,我可以毫无问题地显示媒体库的歌曲。
如何在第一次启动时加载它?
AppDelegate;
let realm:Realm
var library:[MPMediaItem]
override init() {
realm = try! Realm()
let query = MPMediaQuery.songs()
guard let items = query.items else {
self.library = []
print("No song loaded")
return
}
self.library = items
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let userSongs = realm.objects(UserSong.self)
if userSongs.count == 0 {
setLibrary()
}
}
func setLibrary() {
let request = GetLibraryRequest(library: library)
let songs = try! request.response()
for song in songs {
try! self.realm.write {
self.realm.add(song)
}
}
}
只需在将其添加到领域后再次查询 – Tj3n