You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS中如何通过Swift读取MPMediaItem的year字段?

在iOS Swift中读取音乐库的年份字段

直接使用MediaPlayer框架提供的MPMediaItemPropertyYear属性就能读取到这个独立的年份字段,无需直接操作数据库(苹果也禁止直接访问MediaLibrary.sqlitedb)。具体操作如下:

  • 权限配置:在Info.plist中添加NSAppleMusicUsageDescription键,填写访问媒体库的合理原因(比如“需要访问您的音乐库以获取歌曲年份信息”),iOS 10及以上版本必须配置,否则无法读取媒体库且会导致审核被拒。
  • 读取年份的代码示例:
import MediaPlayer

// 请求媒体库权限
MPMediaLibrary.requestAuthorization { status in
    guard status == .authorized else {
        print("媒体库权限未授权")
        return
    }
    
    // 查询所有歌曲
    let query = MPMediaQuery.songs()
    guard let items = query.items else { return }
    
    for item in items {
        // 读取年份字段
        if let yearNumber = item.value(forProperty: MPMediaItemPropertyYear) as? NSNumber {
            let year = yearNumber.intValue
            print("歌曲:\(item.title ?? "未知"),年份:\(year)")
        } else {
            print("歌曲:\(item.title ?? "未知"),无年份信息")
        }
    }
}
  • 补充说明:MPMediaItem的releaseDate属性需要完整的年/月/日发布日期元数据才会返回有效值,而很多音乐文件仅填写了年份、未补充具体月日,因此该字段为空。MPMediaItemPropertyYear对应的就是你在文件元数据和数据库中看到的独立年份字段,专门存储仅含年份的信息。

内容的提问来源于stack exchange,提问作者DisplayName

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:34:55