如何访问 MPMediaItem 的“排序为”字段?
Posted
技术标签:
【中文标题】如何访问 MPMediaItem 的“排序为”字段?【英文标题】:How to access the "Sort as" field of MPMediaItem? 【发布时间】:2018-04-20 17:03:51 【问题描述】:iTunes 有一种方法可以对标题以“a”或“the”开头的歌曲进行排序,无需它即可识别。有没有办法访问这个“排序标题”?我很确定 Apple Music 可以做到这一点,我猜它可以通过
访问let item = MPMediaItem()
let sortName = item.value(forProperty: "someMagicSortNamePropertyIdentifier") as! String
我说的是 iTunes 中的这个字段
【问题讨论】:
【参考方案1】:所有排序属性的基本格式是 sortProperty,即 sortTitle、sortAlbumTitle、sortAlbumArtist 等。
func sortProperty(for property: String) -> String
return "sort" + property.prefix(1).uppercased() + property.dropFirst()
【讨论】:
它有效。你无法想象这有多大帮助,非常感谢! 需要注意的是,如果未设置该值,该属性将具有nil
,因此如果该值为nil
,则回退到实际属性。
无赖,我在 ios 14 上尝试了 sortArtist 和 sortAlbumArtist,但它只是崩溃了。显然它不再可用了。
我刚刚检查过,它仍然可以正常工作。我猜你可能使用了 NSObject 的 valueForKey 而不是 MPMediaEntity 的 valueForProperty 方法。使用 valueForKey 可能会导致此崩溃。以上是关于如何访问 MPMediaItem 的“排序为”字段?的主要内容,如果未能解决你的问题,请参考以下文章
swift,ios 12+中当前播放歌曲的MPMediaItem字段`lyrics`为空
为啥 MPMediaEntity / MPMediaItem 使用 valueForProperty?