iOS - 从didPickMediaItems获取播放列表

时间:2012-08-09 19:08:16

标签: ios ios5 audio-streaming mpmusicplayercontroller mpmediapickercontroller

我想知道用户何时使用媒体选择器选择一首歌曲,他们从哪个播放列表中选择了该歌曲。出于某种原因,播放列表似乎不存在。

基本上当用户转到媒体选择器中的播放列表时,我们将其称为“健身歌曲”并选择一首歌,mediaPicker:didPickMediaItems:function返回歌曲详细信息但不说明用户选择了哪个播放列表。

所以我想要做的就是播放那首歌并继续播放该播放列表中的其他歌曲。但是如果没有播放列表信息,它会开始播放该歌曲并继续播放“所有歌曲”列表中的其余歌曲。

这是我的代码:

(void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection

{

    MPMediaItem *selectedSong = [[mediaItemCollection items] objectAtIndex:0];

    MPMediaQuery *songQuery = [MPMediaQuery songsQuery];
    [musicPlayer setQueueWithQuery:songQuery];
    for (MPMediaItem *oneSong in [songQuery items]) {

        if ([selectedSong isEqual:oneSong]) {
            musicPlayer.nowPlayingItem = oneSong;
            [musicPlayer play];

            // Exit the loop
            break;
        }
    }
    [self dismissModalViewControllerAnimated: YES]; }

1 个答案:

答案 0 :(得分:3)

此数据无法使用。您唯一的选择是在代码中自己完成所有这些。放置一个tableview并用库中的所有播放列表填充它。当用户选择播放列表时,会在该播放列表中显示另一个包含所有曲目的tableview,并允许用户选择一个。