ユーザーがメディアピッカーを使用して曲を選択したとき、どのプレイリストから曲を選択したかを知りたい。何らかの理由で、プレイリストが存在しないようです。
基本的に、ユーザーがメディアピッカーのプレイリストにアクセスして「ジムの曲」と呼び、曲を選択すると、mediaPicker:didPickMediaItems:関数は曲の詳細を返しますが、ユーザーがどのプレイリストから曲を選択したかは示しません。
だから私がやりたいのは、その曲を再生し、そのプレイリストの他の曲を再生し続けることです。ただし、プレイリスト情報がないと、その曲の再生が開始され、「すべての曲」リストの残りの曲の再生が続行されます。
これは私のコードです:
(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]; }