2016-11-09 29 views
13

Bối cảnh: Tôi hiện đang phát triển một ứng dụng iOS tích hợp với Apple Music API. Tôi có thể tìm kiếm các bài hát và phát chúng trên ứng dụng của mình. Để tôn trọng chính sách của họ, tôi cho phép người dùng khởi chạy và phát bài hát trên ứng dụng Apple Music. Shazam làm điều đó cho Apple Music, Deezer và Google Play (xem hình bên dưới).Mở Apple Music từ ứng dụng iOS của tôi

enter image description here

tôi đã làm điều đó cho Spotify sử dụng this chủ đề, về cơ bản sử dụng lược đồ URL. Trên this Chuỗi chuyển hướng Tôi đã tìm thấy danh sách các Lược đồ URL của iOS, nhưng tôi không thể tìm thấy bất kỳ điều gì về Apple Music - this yêu cầu trên cùng một chuỗi xác nhận rằng nó vẫn không có sẵn.

Cũng không có may mắn với API nhạc Apple.

Câu hỏi: Có ai đó biết cách thực hiện hành vi tương tự với Apple Music không? Btw, nó không cần thiết phải được với các chương trình URL.

Mục tiêu ở đây là khởi chạy Apple Music và phát bài hát đó vào ứng dụng Apple Music chứ không phải trên ứng dụng của tôi. Tôi đã phát các bài hát từ Apple Music trên ứng dụng của mình.

Tôi có thiếu thứ gì đó trên tài liệu API không? Bất kì suy nghĩ nào cũng được trân trọng.

+0

Chính sách nào bạn đề cập đến bạn cần cho phép người dùng mở một bài hát trong Apple Music? –

Trả lời

7

Bạn nên sử dụng liên kết sâu để mở đinh trong Apple Âm nhạc ứng dụng: https://affiliate.itunes.apple.com/resources/documentation/linking-to-the-itunes-music-store/

Trước hết, bạn cần phải yêu cầu một uỷ quyền qua SKCloudServiceController API để kiểm tra khả năng của bạn (ví dụ, nếu điện thoại của bạn cho phép phát lại của Bản nhạc Apple Music).

[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];     
      }]; 

     }]; 
    }]; 

Tiếp theo, bạn sẽ có thể yêu cầu số nhận dạng mặt trước cửa hàng mà bạn định sử dụng để xác định mã quốc gia của mình. Tôi đề xuất bao gồm tệp .plist trong dự án của bạn với tất cả số nhận dạng và mã quốc gia tương ứng. (bạn có thể tìm tệp .plist tại đây https://github.com/bendodson/storefront-assistant/blob/master/StorefrontCountries.plist). Bạn cần mã quốc gia của mình cho các yêu cầu API Apple Music.

- (NSString *)countryCodeWithIdentifier:(NSString *)identifier { 
    NSURL *plistURL = [[NSBundle mainBundle] URLForResource:@"CountryCodes" withExtension:@"plist"]; 
    NSDictionary *countryCodeDictionary = [NSDictionary dictionaryWithContentsOfURL:plistURL]; 

    return countryCodeDictionary[identifier]; 
} 

Khi bạn có mã quốc gia tương ứng, bạn sẽ có thể tìm kiếm bản nhạc trong API của Apple Music. Yêu cầu GET https: //itunes.apple.com/tìm kiếm sử dụng các thông số sau:

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

Như một phản ứng yêu cầu này, bạn sẽ nhận được một loạt các kết quả theo dõi, với rất nhiều các thông số liên quan. Một trong số đó là "trackViewUrl". Chỉ cần thêm các tham số sau vào trackViewUrl này để liên kết sâu với ứng dụng Apple Music:

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

Dường như ở bên phải, sẽ thử ở đây. Cảm ơn bạn! – antonioduarte

+0

Làm việc cho tôi - cảm ơn! –

0

Có một số mã ví dụ trong bài đăng SO này mà bạn có thể thấy hữu ích: play apple music songs by third party applications. tôi đã có thể kích hoạt máy nghe nhạc và chơi một bài hát với:

#import <MediaPlayer/MediaPlayer.h> 

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

Ngoài ra, các tài liệu hướng dẫn của Apple Âm nhạc API được giới thiệu ở đây:

Apple Music Best Practices for App Developers

Apple Music API FAQ

Tôi hy vọng nó giúp .

+0

Điều này đã được thực hiện trong ứng dụng, nhưng nó không phải là những gì tôi đang tìm kiếm. Tôi muốn có thể khởi chạy Apple Music từ ứng dụng của tôi và phát bài hát ở đó. – antonioduarte

Các vấn đề liên quan