iOS 16 MusicKit:如何识别并获取用户创建的可编辑播放列表
仅获取iOS 16 MusicKit中可编辑的用户播放列表
要直接获取用户可编辑的播放列表(即用户自行创建的列表),你可以利用MusicKit中Playlist类型的canEdit属性进行过滤,这个属性会准确标识该播放列表是否允许当前用户编辑。
修改请求代码,直接筛选可编辑播放列表
在构建MusicLibraryRequest时,添加过滤条件,只请求canEdit为true的播放列表:
var request = MusicLibraryRequest<Playlist>() request.filter(matching: \.canEdit, equalTo: true) // 新增过滤条件 request.sort(by: \.lastPlayedDate, ascending: false) let response = try await request.response() let editablePlaylists = response.items
也可在获取所有列表后二次筛选
如果需要保留原始请求逻辑,也可以在拿到响应结果后,通过数组过滤得到可编辑列表:
let response = try await request.response() let editablePlaylists = response.items.filter { $0.canEdit }
说明
canEdit属性仅对用户自己创建的播放列表返回true,苹果官方、其他Apple Music用户创建的公共或不可编辑列表会返回false。通过这种方式获取的播放列表,后续调用MusicLibrary.shared.add(track, to: playlist)时就不会再遇到MPErrorDomain Code=5的权限错误。
内容的提问来源于stack exchange,提问作者Ali Mert
相关产品推荐
相关产品推荐

