是否可以在 MPMediaCollection 中唯一标识重复的 MPMediaItem?
Posted
技术标签:
【中文标题】是否可以在 MPMediaCollection 中唯一标识重复的 MPMediaItem?【英文标题】:Is it possible to uniquely identify duplicate MPMediaItems within an MPMediaCollection? 【发布时间】:2011-08-08 15:20:27 【问题描述】:我正在使用MPMediaItemCollection
来保存一些用户从 iPod 音乐库中选择的音乐曲目。我希望能够唯一标识集合中的每个MPMediaItem
,即使它们是重复的。这可能吗?
【问题讨论】:
-isEqual:
不够用吗?
没有。如果音乐播放器 nowPlayingItem 在媒体集合中有重复项,如果我使用 NSArrays indexForObject: 方法检查 nowPlayingItems 索引,则始终返回索引值最低的 mediaItem。这意味着如果正在播放的项目是数组中更靠前的副本之一,则它不会返回正确的对象。我认为 indexForObject 正在使用 isEqual: 方法扫描数组,直到它返回 true。
是的,但这始终是它的工作方式。这就是-indexOfObject:
的目的。如果您想查找任何重复项,则不能使用-indexOfObject:
,因为它始终会为您提供第一个索引。
是的,这就是为什么我需要一种唯一标识数组中每个 mediaItem 的方法,以便我可以确定正在为音乐播放器 nowPlayingItem 返回正确的索引
这没有意义。如果该项目两次出现在列表中,则两次是同一项目。
【参考方案1】:
我遇到了和你一样的问题,Apple 刚刚在 ios v5.0 中为我提供了解决方案。 MPMusicPlayerController 类中有一个 indexOfNowPlayingItem 属性。您可以使用它来索引您的数组。当然,如果您使用的是 MPMusicPlayerController。
【讨论】:
以上是关于是否可以在 MPMediaCollection 中唯一标识重复的 MPMediaItem?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MPMusicplayerController 上播放歌曲 URL?