1

我正在尝试在 iOS 上检索播放列表,但删除所有非音乐内容。这是原始代码,它返回了一些视频项目。

MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:_playlistIdentifier forProperty:MPMediaPlaylistPropertyPersistentID]];
[query setGroupingType:MPMediaGroupingPlaylist];

所以我把它改成:

MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:_playlistIdentifier forProperty:MPMediaPlaylistPropertyPersistentID]];
[query addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInteger:MPMediaTypeMusic] forProperty:MPMediaItemPropertyMediaType]];
[query setGroupingType:MPMediaGroupingPlaylist];

但是,没有运气 - 我们的一位在播放列表中有视频(本地不可用,仅在 iCloud 上)的客户仍然抱怨他可以看到这些视频。是否有某些原因导致此查询未删除这些非音乐文件?

4

1 回答 1

1

正如您在问题中提到的那样,设备上不可用但存储在 iCloud 上的视频会显示在播放列表中。因此,排除 icloud 项目可能会解决问题。所以将过滤器添加为

[query addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithBool:NO] forProperty:MPMediaItemPropertyIsCloudItem]];

它将排除现在不可用的 iCloud 项目。希望它会起作用。

于 2014-11-22T13:32:25.027 回答