2016-11-09 4 views
13

Kontext: Ich entwickle gerade eine iOS App, die in Apple Music API integriert ist. Ich kann nach Songs suchen und sie in meiner App abspielen. Um ihre Richtlinien zu respektieren, muss der Benutzer den Song in der Apple Music App starten und abspielen können. Shazam macht das für Apple Music, Deezer und Google Play (siehe Bild unten).Öffnen von Apple Music über meine iOS App

enter image description here

Ich habe das getan für Spotify this Fäden, im Grunde ein URL-Schema verwendet wird. Auf this Reddit Thread Ich fand eine Liste von iOS URL Schemes, aber ich kann nichts über Apple Music finden - this Anfrage auf dem gleichen Thread bestätigt, dass es immer noch nicht verfügbar ist.

Kein Glück mit der Apple Music API.

Frage: Weiß jemand, wie man das gleiche Verhalten mit Apple Music erreicht? Übrigens, es ist nicht notwendig, mit URL-Schemata zu sein.

Ziel ist es, die Apple Musik zu starten und den Song in der Apple Music App zu spielen, nicht in meiner App. Ich spiele bereits Songs von Apple Music in meiner App.

Fehle ich etwas in den API-Dokumenten? Irgendwelche Gedanken werden geschätzt.

+0

Welche Politik beziehen Sie sich, dass Sie sagt Benutzern zu ermöglichen, benötigen Sie einen Song in Apple Music zu öffnen? –

Antwort

7

Sie Deep-Links, um Reißzwecken in Apple Music App zu öffnen verwenden sollte: https://affiliate.itunes.apple.com/resources/documentation/linking-to-the-itunes-music-store/

Zunächst einmal müssen Sie eine Genehmigung über SKCloudServiceController API fordern Sie Ihre Fähigkeiten zu überprüfen (zB wenn Ihr Gerät ermöglicht die Wiedergabe von Apple Musikspuren).

[SKCloudServiceController requestAuthorization:^(SKCloudServiceAuthorizationStatus status) { 
     self.cloudServiceController = [[SKCloudServiceController alloc] init]; 
     [self.cloudServiceController requestCapabilitiesWithCompletionHandler:^(SKCloudServiceCapability capabilities, NSError * _Nullable error) {   
      [self.cloudServiceController requestStorefrontIdentifierWithCompletionHandler:^(NSString * _Nullable storefrontIdentifier, 
                          NSError * _Nullable error) { 
       NSString *identifier = [[storefrontIdentifier componentsSeparatedByString:@","] firstObject]; 
       identifier = [[identifier componentsSeparatedByString:@"-"] firstObject]; 
       NSString *countryCode = [self countryCodeWithIdentifier:identifier];     
      }]; 

     }]; 
    }]; 

Als Nächstes werden Sie in der Lage sein, die Storefront-Kennung anfordern, mit denen Sie Ihren Ländercode verwenden wollen, zu definieren. Ich empfehle, eine .list-Datei in Ihr Projekt mit allen Identifikatoren und den entsprechenden Ländercodes aufzunehmen. (Sie finden die .plist Datei hier https://github.com/bendodson/storefront-assistant/blob/master/StorefrontCountries.plist). Sie benötigen Ihren Ländercode für die Apple Music API-Anfragen.

Sobald Sie den entsprechenden Ländercode haben, können Sie in der Apple Music API nach einem Titel suchen. Machen Sie eine Anfrage an GET https: //itunes.apple.com/search mit den folgenden Parametern:

NSDictionary *parameters = @{ 
           @"isStreamable" : @(YES), 
           @"term" : @"your search parameter" 
           @"media" : @"music", 
           @"limit" : @(5), 
           @"country" : @"your country code" 
           }; 

Als Reaktion dieser Anfrage, werden Sie eine Reihe von Track Ergebnisse, mit vielen Parametern zugeordnet erhalten. Einer von ihnen ist der "trackViewUrl". Fügen Sie einfach die folgenden Parameter dieser trackViewUrl, um es DeepLinking Apple Music App zu machen:

NSString *appleMusicDeepLinking = [NSString stringWithFormat:@"%@&mt=1&app=music", response[0][@"trackViewUrl"]]; 
+0

Scheint ungefähr richtig, wird es hier versuchen. Vielen Dank! – antonioduarte

+0

Arbeitete auch für mich - danke! –

0

In diesem SO-Post gibt es einen Beispielcode, den Sie möglicherweise nützlich finden: play apple music songs by third party applications. ich in der Lage war, den Spieler zu aktivieren und einen Song mit spielen:

Apple Music Best Practices for App Developers

Apple Music API FAQ

Ich hoffe, es hilft:

#import <MediaPlayer/MediaPlayer.h> 

[[MPMusicPlayerController systemMusicPlayer] setQueueWithStoreIDs:tracks]; 
[[MPMusicPlayerController systemMusicPlayer] play]; 

Auch ist die Apple-Musik-API-Dokumentation hier vorgestellt .

+0

Dies wird bereits in der App gemacht, aber es ist nicht das, wonach ich suche. Ich möchte in der Lage sein, Apple Music von meiner App aus zu starten und das Lied dort zu spielen. – antonioduarte

Verwandte Themen