Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Playing (non library) Apple Music content - request fails

I'm trying to play an album, using the following code…

let predicate = MPMediaPropertyPredicate(value: "1459938538", forProperty: MPMediaItemPropertyAlbumPersistentID)
let iCloudPredicate = MPMediaPropertyPredicate(value: true, forProperty: MPMediaItemPropertyIsCloudItem)
let query = MPMediaQuery.albums()
query.filterPredicates = [predicate, iCloudPredicate]

let mp = MPMusicPlayerController.applicationMusicPlayer
mp.setQueue(with: query)
mp.play()

But it's failing with

[SDKPlayback] -[MPMusicPlayerController prepareToPlay] timeout

[MediaRemote] MRC <MPCPlayerPath: route=<MPAVEndpointRoute: 0x280f1a280 name=iPhone uid=LOCAL> origin=iPhoneID bundleID=com.apple.MediaPlayer.RemotePlayerService playerID=MPMusicPlayerApplicationController>: Undo optimistic state [failed] command=Play error=Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1)" UserInfo={NSDebugDescription=Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1), MPCPlayerErrorKeyMediaRemoteCommandHandlerStatus=1}

[SDKPlayback] -[MPMusicPlayerController play] completed error: Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to send command 0" UserInfo={NSDebugDescription=Failed to send command 0, NSUnderlyingError=0x28344c810 {Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1)" UserInfo={NSDebugDescription=Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1), MPCPlayerErrorKeyMediaRemoteCommandHandlerStatus=1}}}

• If I remove the predicates, it'll play local albums OK.

• SKCloudServiceController.requestAuthorization is .authorized

• The device has both .musicCatalogPlayback and .addToCloudMusicLibrary capabilities.

1459938538 seems to be a valid id (it's for the latest Madonna album - https://music.apple.com/gb/album/madame-x-deluxe/1459938538)

Any hints as to how to play an album that's not in my library?

like image 910
Ashley Mills Avatar asked Jun 20 '19 15:06

Ashley Mills


1 Answers

MPMediaQuery is only for Library items. You would need to use the web Apple Music search API to get store IDs to use in setting the queue.

like image 118
Dylan Reich Avatar answered Sep 30 '22 17:09

Dylan Reich