3

我一直在探索音乐的苹果API,看看有什么样的功能,我可以期望能够在iOS应用使用。我创建了一个小测试应用程序,获得用户的许可,并将我有(和歌曲)的播放列表输出到NSLog苹果音乐API - 创建播放列表

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%确定):

  • 播放列表(基本信息:姓名,身份证)是在本地存储设备
  • 播放列表中的歌曲也从本地存储拉到如果播放列表尚未下载到它熄灭苹果抢歌曲列表中的设备。

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

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

我知道有一个MPMediaPlaylistaddItemadd方法,但似乎无法找到创建新的播放列表本身的一种方式。

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

开发人员可以创建用户与苹果音乐API设备上全新的播放列表?

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

回答

3

我已经想通了这一点。如果您使用下面的代码可以生成一个新的播放列表,并在其上执行的操作。

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的文档在样例代码和实例方面严重缺乏!