我一直在探索Apple Music API,以了解我可以期望能够在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 (@"tt%@", songTitle);
}
}
从中,我能够得出以下内容(但我不是100%确定):
- 播放列表(基本信息:名称,id)本地存储在设备上
- 播放列表的歌曲也将从本地存储中删除,但如果播放列表尚未下载到设备上,它将访问苹果以获取歌曲列表。
到目前为止,一切都很好。我想知道的是:
- 是否有一种方法可以从我的应用程序(通过API)创建播放列表?
我知道有一个MPMediaPlaylist
addItem
和add
方法,但似乎找不到创建新播放列表本身的方法。
根据此页面,应该有可能:https://affiliate.itunes.apple.com/resources/blog/apple-music-music-api-faq/
开发人员可以使用Apple Music API在用户的设备上创建全新的播放列表?
是。API允许在用户设备上开发新的创建播放列表。
我已经弄清楚了。如果使用以下代码,则可以生成新的播放列表并在其上执行操作。
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!");
}
}];
苹果关于整个API的文档在示例代码和实际示例方面严重缺乏!