Apple Music API - Создайте плейлист
Я изучал API Apple Music, чтобы увидеть, какую функциональность я могу использовать в приложении для iOS. Я создал небольшое тестовое приложение, которое получает разрешение от пользователя и выводит плейлисты, которые у меня есть (и песни), на NSLog
,
MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];
[myPlaylistsQuery setGroupingType:MPMediaGroupingPlaylist];
NSArray *playlists = [myPlaylistsQuery collections];
for (MPMediaPlaylist *playlist in playlists) {
NSLog (@"%@", [playlist valueForProperty: MPMediaPlaylistPropertyName]);
NSArray *songs = [playlist items];
for (MPMediaItem *song in songs) {
NSString *songTitle =
[song valueForProperty: MPMediaItemPropertyTitle];
NSLog (@"\t\t%@", songTitle);
}
}
Из этого я смог вывести следующее (но я не уверен на 100%):
- список воспроизведения (основная информация: имя, идентификатор) хранится локально на устройстве
- песни списка воспроизведения также извлекаются из локального хранилища, но если список воспроизведения не был загружен на устройство, он отправляется в Apple, чтобы получить список песен.
Все идет нормально. То, что я хочу знать, это:
- Есть ли способ создания списка воспроизведения из моего приложения (через API)?
Я знаю, что есть MPMediaPlaylist
addItem
а также add
метод, но не могу найти способ создания нового плейлиста.
Согласно этой странице это должно быть возможно: https://affiliate.itunes.apple.com/resources/blog/apple-music-api-faq/
Может ли разработчик создавать новые плейлисты на устройстве пользователя с помощью Apple Music API?
Да. API позволяет разрабатывать новые списки воспроизведения на устройстве пользователя.
1 ответ
Я понял это. Если вы используете следующий код, вы можете создать новый список воспроизведения и выполнить действие с ним.
NSUUID *uuid = [NSUUID UUID]; //uuid for the playlist
[[MPMediaLibrary defaultMediaLibrary] getPlaylistWithUUID:uuid creationMetadata:[[MPMediaPlaylistCreationMetadata alloc] initWithName:@"YOUR PLAYLIST NAME"] completionHandler:^(MPMediaPlaylist * _Nullable playlist, NSError * _Nullable error) {
NSLog(@"%@", error);
if (!error) {
NSLog(@"All ok let's do some stuff with the playlist!");
}
}];
Документация Apple по всему API сильно отсутствует в плане примера кода и практических примеров!