当我在iOS中播放另一个专辑时,我是否需要清理或清除MPMediaItemCollection?

时间:2013-02-10 10:12:23

标签: ios cocoa-touch mpmediaitemcollection

您好我想知道我是否需要在iOS中清除或清除MPMediaItemCollection

我正在使用iPodMusicPlayer进行音乐应用。所以我需要播放播放列表,专辑等中的歌曲。

例如,我首先播放播放列表中的歌曲,之后我想播放专辑中的歌曲。

所以当我想播放Album中的歌曲时,我是否需要清除当前播放播放列表中歌曲的MPMediaItemCollection

或者我不需要清洁,可以在不清洁的情况下添加?

如果我需要清洁,我该怎么做?

以下是我的一些代码,可将歌曲加载到MPMediaItemCollection

MPMediaQuery *query4 = [MPMediaQuery songsQuery];

        MPMediaPropertyPredicate *filter = [MPMediaPropertyPredicate predicateWithValue:self.Name forProperty:MPMediaItemPropertyAlbumTitle comparisonType:MPMediaPredicateComparisonContains];

        [query4 addFilterPredicate:filter];

        self.app.arrayFromAppDelegate = [[query4 items] mutableCopy];

        self.userMediaItemCollection = [MPMediaItemCollection collectionWithItems:self.app.arrayFromAppDelegate];

        [self.player setQueueWithItemCollection:self.userMediaItemCollection];

[self.player play];

那是我从专辑中加载的歌并播放它。

然后当我想播放播放列表中的歌曲时。这是我的代码,将歌曲添加到MPMediaItemCollection

MPMediaQuery *query = [MPMediaQuery playlistsQuery];

        MPMediaPropertyPredicate *filter = [MPMediaPropertyPredicate predicateWithValue:self.Name forProperty:MPMediaPlaylistPropertyName comparisonType:MPMediaPredicateComparisonContains];

        [query addFilterPredicate:filter];

        self.app.arrayFromAppDelegate = [[query items] mutableCopy];
        NSLog(@"%i",self.app.arrayFromAppDelegate.count);

        self.userMediaItemCollection = [[MPMediaItemCollection alloc] initWithItems:self.app.arrayFromAppDelegate];

        [self.player setQueueWithItemCollection:self.userMediaItemCollection];

[self.player play];

玩的很好。但我担心记忆。 例如。我的专辑歌曲数是10,我的播放列表歌曲数是25。

所以我在NowPlayingItemChanged事件中检查了我的MPMediaItemCollection计数,并用两行显示。

MPMediaItemCollection count : 10
MPMediaItemCollection count : 25

我认为这是在没有前一张专辑的清晰歌曲的情况下将播放列表中的歌曲添加到收藏中。 这没关系?

那么如何清除MPMediaItemCollection中存在的以前的歌曲。

感谢。

抱歉我的英语不好。

0 个答案:

没有答案