我将(mediaItemCollection.items.first?.assetURL!.absoluteString)
作为字符串保存到本地 SQLite DB。现在我想从保存的字符串创建 MPMediaItem 对象,即assetURL!.absoluteString
,是否可以从它的 assesURL 创建 MPMediaItem 对象?如果不可能,那么我应该将什么保存到 SQLite DB 以便我可以从保存的属性创建 MPMediaItem 对象?
问问题
340 次
1 回答
2
我从@user28434 的建议中找到了解决方案。
我将 persistentID 作为字符串保存到 SQLite DB
let songItem = mediaItemCollection.representativeItem!
let persistantID = String(songItem.persistentID)
由此persistentID
,我可以在从数据库中 获取存储的同时创建MPMediaItem
对象。MPMediaQuery
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]
}
于 2020-01-03T11:04:55.877 回答