Невозможно воспроизвести песню в Apple Music с помощью MPMusicPlayerController
У меня есть требование, при котором мне нужно искать и воспроизводить песни в приложении, поэтому я использую API-интерфейс поиска iTunes в своем приложении для воспроизведения песен, но не могу его воспроизвести.
Найдите параметр запроса и ответа в API поиска iTunes.
Request : https://itunes.apple.com/search?term=A+R+Rahman&entity=song&country=in&limit=1
Response :
{
resultCount = 1;
results = (
{
artistId = 3249567;
artistName = "A. R. Rahman, Javed Ali & Mohit Chauhan";
artistViewUrl = "https://itunes.apple.com/in/artist/a-r-rahman/id3249567?uo=4";
collectionId = 1123241840;
collectionViewUrl = "https://itunes.apple.com/in/album/kun-faya-kun/id1123241840?i=1123241921&uo=4";
country = IND;
currency = INR;
discCount = 1;
discNumber = 1;
isStreamable = 1;
kind = song;
previewUrl = "http://audio.itunes.apple.com/apple-assets-us-std-000001/AudioPreview20/v4/00/a6/82/00a68217-deef-d90c-d63b-1fab15acb840/mzaf_8630030048415899809.plus.aac.p.m4a";
primaryGenreName = Bollywood;
releaseDate = "2011-09-30T07:00:00Z";
trackCensoredName = "Kun Faya Kun";
trackCount = 14;
trackExplicitness = notExplicit;
trackId = 1123241921;
trackName = "Kun Faya Kun";
trackNumber = 4;
trackPrice = 15;
trackTimeMillis = 470500;
trackViewUrl = "https://itunes.apple.com/in/album/kun-faya-kun/id1123241840?i=1123241921&uo=4";
wrapperType = track;
}
);
}
Я использую trackId и передал его setQueueWithStoreIDs
метод MPMusicPlayerController
,
Примечание: я также пробовал previewUrl, trackViewUrl, collectionId и collectionViewUrl, но не добился успеха.
И я также прошел процесс проверки авторизации и возможностей устройства для воспроизведения песни Apple Music.
Пожалуйста, найдите ниже полный код.
[SKCloudServiceController requestAuthorization:^(SKCloudServiceAuthorizationStatus status) {
if(status == SKCloudServiceAuthorizationStatusAuthorized) {
SKCloudServiceController *cloudServiceController = [[SKCloudServiceController alloc] init];
[cloudServiceController requestCapabilitiesWithCompletionHandler:^(SKCloudServiceCapability capabilities, NSError * _Nullable error) {
if (capabilities == SKCloudServiceCapabilityMusicCatalogPlayback) {
NSLog(@"You can play the song");
[[MPMusicPlayerController systemMusicPlayer] setQueueWithStoreIDs:@[@"1123241921"]];
[[MPMusicPlayerController systemMusicPlayer] prepareToPlayWithCompletionHandler:^(NSError * _Nullable error) {
NSLog(@"Error : %@",error.description);
}];];
}
else {
NSLog(@"You did not have the capability for playing the Apple Music");
}
}];
}
else {
NSLog(@"You do not authorize for Apple Music");
}
}];
Ошибка при воспроизведении песни.
Ошибка домена =MPErrorDomain Code=4 "(null)"
Пожалуйста, объясните мне, какая реализация требуется и может ли это быть выполнимо или нет.
Скачать исходный код приложения можно по ссылке ниже. https://www.dropbox.com/s/2n5110qmaqpvkdf/TestAppleMusic.zip?dl=0