Apple Music API - 创建播放列表

scg*_*ugh 4 objective-c itunes-sdk mpmediaquery mpmedialibrary apple-music

我一直在探索 Apple Music API,看看我可以在 iOS 应用程序中使用什么样的功能。我创建了一个小测试应用程序,它获得用户的许可并将我拥有的播放列表(和歌曲)输出到NSLog.

\n
MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];\n            [myPlaylistsQuery setGroupingType:MPMediaGroupingPlaylist];\n            NSArray *playlists = [myPlaylistsQuery collections];\n            \n            for (MPMediaPlaylist *playlist in playlists) {\n                NSLog (@"%@", [playlist valueForProperty: MPMediaPlaylistPropertyName]);\n                \n                NSArray *songs = [playlist items];\n                \n                for (MPMediaItem *song in songs) {\n                    NSString *songTitle =\n                    [song valueForProperty: MPMediaItemPropertyTitle];\n                    NSLog (@"\\t\\t%@", songTitle);\n                }\n            }\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
    \n
  • 播放列表(基本信息:名称、id)存储在设备本地
  • \n
  • 播放列表中的歌曲也会从本地存储中提取,但如果播放列表尚未下载到设备上,则会由 Apple 获取歌曲列表。
  • \n
\n

到目前为止,一切都很好。我想知道的是:

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

我知道有一个MPMediaPlaylist addItemandadd方法,但似乎找不到创建新播放列表本身的方法。

\n

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

\n
\n

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

\n

是的。该 API 允许开发人员在 user\xe2\x80\x99s 设备上新创建播放列表。

\n
\n

scg*_*ugh 5

我已经弄清楚了。如果您使用以下代码,您可以生成一个新的播放列表并对其执行操作。

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!"); 
    }
}];
Run Code Online (Sandbox Code Playgroud)

Apple关于整个API的文档在示例代码和实际例子方面严重缺乏!