3

J'ai exploré l'API Apple Music pour voir quel type de fonctionnalité je peux espérer utiliser dans une application iOS. J'ai créé une petite application de test qui obtient l'autorisation de l'utilisateur et affiche les playlists que j'ai (et les chansons) à NSLog.API Apple Music - Créer une Playlist

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); 
       } 
      } 

De là, j'ai pu en déduire les éléments suivants (mais je ne suis pas sûr à 100%):

  • la liste de lecture (informations de base: nom, id) est stocké localement sur le les morceaux de playlist sont également extraits du stockage local mais si la playlist n'a pas été téléchargée sur l'appareil, elle est envoyée à Apple pour récupérer la liste des morceaux.

Jusqu'ici, tout va bien. Ce que je veux savoir est:

  • Y at-il un moyen de créer une liste de lecture à partir de mon application (via l'API)?

Je sais qu'il ya une méthode MPMediaPlaylistaddItem et add mais ne semblent pas trouver un moyen de créer la nouvelle playlist lui-même.

Selon cette page, il devrait être possible: https://affiliate.itunes.apple.com/resources/blog/apple-music-api-faq/

un développeur peut créer toutes nouvelles listes de lecture sur l'appareil de l'utilisateur avec l'API Musique Apple?

Oui. L'API permet de créer de nouvelles listes de lecture sur l'appareil de l'utilisateur.

Répondre

3

Je l'ai compris. Si vous utilisez le code suivant, vous pouvez générer une nouvelle playlist et y effectuer une action.

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!"); 
    } 
}]; 

La documentation d'Apple sur l'ensemble de l'API manque cruellement d'exemples de code et d'exemples pratiques!