Воспроизвести все песни в музыке
У меня есть этот код для воспроизведения всех песен в музыкальной библиотеке (добавлен через iTunes и загружен в библиотеку из Apple Music). Я не могу иметь только песни. Что я делаю неправильно?
-(IBAction)playAllSongs:(id)sender {
MPMediaQuery *songsQuery = [MPMediaQuery songsQuery];
NSArray *songsArray = [songsQuery collections];
MPMediaItemCollection *items = [MPMediaItemCollection collectionWithItems:songsArray];
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController systemMusicPlayer];
[musicPlayer setQueueWithItemCollection:items];
}
2 ответа
Решение
Я решил сам
MPMediaQuery *songsQuery = [MPMediaQuery songsQuery];
NSArray *songsArray = [songsQuery items];
MPMediaItemCollection *items = [MPMediaItemCollection collectionWithItems:songsArray];
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController systemMusicPlayer];
//[songsQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithBool:NO] forProperty:MPMediaItemPropertyIsCloudItem]]; // for iTunes Match or Apple music to exclude or not songs not in the device
[musicPlayer setQueueWithItemCollection:items];
Приведенный выше ответ работает, но это обходной путь. Более простой способ:
MPMediaQuery *songs = [MPMediaQuery songsQuery];
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController systemMusicPlayer];
[musicPlayer setQueueWithQuery:songs]