我将(mediaItemCollection.items.first?.assetURL!.absoluteString)作为字符串保存到本地SQLite DB中。现在我想从保存的字符串创建MPMediaItem对象,也就是assetURL!.absoluteString,可以从它的assesURL创建MPMediaItem对象吗?如果这是不可能的,那么我应该保存什么到SQLite DB,以便我可以从保存的属性创建回MPMediaItem对象?
发布于 2020-01-03 19:04:56
我从@user28434建议中找到了解决方案。
我要将persistentID作为字符串保存到SQLite DB中
let songItem = mediaItemCollection.representativeItem!
let persistantID = String(songItem.persistentID)从这个persistentID中,我可以使用MPMediaQuery创建回MPMediaItem对象,同时从数据库中获取存储的persistentID。
按照下面的方法创建MPMediaItem对象。
let noCloudPre = MPMediaPropertyPredicate(value: NSNumber(booleanLiteral: false),
forProperty: MPMediaItemPropertyIsCloudItem)
func getSongItem(persistantID: String) -> MPMediaItem?{
let songQuery = MPMediaQuery.songs()
songQuery.addFilterPredicate(noCloudPre)
songQuery.addFilterPredicate(MPMediaPropertyPredicate(value: persistantID,
forProperty: MPMediaItemPropertyPersistentID,
comparisonType: MPMediaPredicateComparison.equalTo))
return songQuery.items?[0]
}https://stackoverflow.com/questions/59563411
复制相似问题