iOS音乐播放开发全解析
1. 音乐库的持久化与变更
在音乐库的管理中, MPMediaEntity
有一个重要属性 persistentID
,它能唯一标识一个实体。无论是歌曲、专辑、艺术家还是作曲家等,都有各自的 persistentID
。即使两首歌曲或两个播放列表可能有相同的标题,但 persistentID
是独一无二的,且具有持久性。通过这个 ID,即使在应用重新启动后,也能再次获取之前检索到的同一首歌曲或播放列表。
当进行音乐搜索并维护搜索结果时,音乐库的内容可能会发生变化。例如,用户将设备连接到电脑,使用 iTunes 添加或删除音乐,这可能导致搜索结果过时。为了解决这个问题,可以通过 MPMediaLibrary
类获取音乐库的修改日期。具体操作步骤如下:
1. 调用类方法 default
获取实际的音乐库实例。
2. 调用实例的 lastModifiedDate
属性获取最后修改日期。
此外,还可以注册接收音乐库修改的通知 .MPMediaLibraryDidChange
。不过,在接收该通知之前,需要先调用 MPMediaLibrary
实例方法 beginGeneratingLibraryChangeNotifications
,并且在不需要时调用 endGeneratingLibraryChangeNotifications