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的文檔在樣例代碼和實例方面嚴重缺乏!