如何从assetURL!absoluteString创建MPMediaItem?



我正在将(mediaItemCollection.items.first?.assetURL!.absoluteString)作为字符串保存到本地SQLite数据库。 现在我想从保存的字符串即assetURL!.absoluteString创建 MPMediaItem 对象,是否可以从其评估 URL 创建 MPMediaItem 对象?如果不可能,那么我应该将什么保存到SQLite DB,以便我可以从保存的属性创建MPMediaItem的对象?

我从@user28434建议中找到了解决方案。

我正在将持久性ID作为字符串保存到SQLite数据库

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]
}

最新更新