如何访问MPMediaItem的‘Sort as’字段?获取iTunes歌曲排序标题
访问iTunes/Apple Music的歌曲排序标题
嘿,这个问题我刚好折腾过!完全可以访问这个系统处理后的「排序标题」字段~
在MediaPlayer框架里,苹果早就给我们提供了专门的属性标识符来获取这些排序用的字符串,根本不需要什么“魔法属性名”:
- 歌曲标题的排序值:
MPMediaItemPropertyTitleSort - 专辑标题的排序值:
MPMediaItemPropertyAlbumTitleSort - 艺术家名称的排序值:
MPMediaItemPropertyArtistSort
给你一个能跑的代码示例,注意别像你原来那样新建空的MPMediaItem()——空实例拿不到实际数据,得先通过媒体查询拿到具体的歌曲项:
// 先通过查询获取目标媒体项,比如取第一首歌 let query = MPMediaQuery.songs() if let mediaItems = query.items, let targetSong = mediaItems.first { // 读取排序标题 if let sortTitle = targetSong.value(forProperty: MPMediaItemPropertyTitleSort) as? String { print("歌曲的排序标题:\(sortTitle)") } }
小提示:这些属性返回的字符串,就是iTunes和Apple Music里用来排序的那个版本——自动忽略了标题开头的冠词(a/an/the),和你在客户端看到的排序逻辑完全匹配。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

