首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从assetURL!.absoluteString创建MPMediaItem?

如何从assetURL!.absoluteString创建MPMediaItem?
EN

Stack Overflow用户
提问于 2020-01-02 20:32:21
回答 1查看 296关注 0票数 0

我将(mediaItemCollection.items.first?.assetURL!.absoluteString)作为字符串保存到本地SQLite DB中。现在我想从保存的字符串创建MPMediaItem对象,也就是assetURL!.absoluteString,可以从它的assesURL创建MPMediaItem对象吗?如果这是不可能的,那么我应该保存什么到SQLite DB,以便我可以从保存的属性创建回MPMediaItem对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-03 19:04:56

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

我要将persistentID作为字符串保存到SQLite DB中

代码语言:javascript
复制
 let songItem = mediaItemCollection.representativeItem!
 let persistantID = String(songItem.persistentID)

从这个persistentID中,我可以使用MPMediaQuery创建回MPMediaItem对象,同时从数据库中获取存储的persistentID

按照下面的方法创建MPMediaItem对象。

代码语言:javascript
复制
 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]
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59563411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档