Apple Music API - 创建播放列表

时间:2017-02-27 15:31:12

标签: objective-c mpmediaquery itunes-sdk apple-music mpmedialibrary

我一直在探索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 (@"\t\t%@", songTitle);
                }
            }

由此,我能够推断出以下内容(但我并非100%确定):

  • 播放列表(基本信息:名称,ID)本地存储在设备上
  • 播放列表歌曲也会从本地存储中提取,但如果播放列表没有下载到设备,则播放到Apple以获取歌曲列表。

到目前为止,这么好。我想知道的是:

  • 有没有办法从我的应用程序(通过API)创建播放列表?

我知道有MPMediaPlaylist addItemadd方法,但似乎无法找到创建新播放列表的方法。

根据此页面,应该可以:https://affiliate.itunes.apple.com/resources/blog/apple-music-api-faq/

  

开发人员可以使用Apple Music API在用户的设备上创建全新的播放列表吗?

     

是。 API允许在用户设备上开发新的创建播放列表。

1 个答案:

答案 0 :(得分:4)

我已经想到了这一点。如果使用以下代码,则可以生成新的播放列表并对其执行操作。

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文档严重缺乏示例代码和实际示例!