I submitted Feedback about this in Feedback Assistant already, but figured I'd post here too -- as of iOS 13.4, I have noticed various bugs in the MediaPlayer framework, specifically with the applicationQueuePlayer and applicationMusicPlayer.
The first is that on app launch when it initializes, it now throws this error:
[SDKPlayback] applicationQueuePlayer _establishConnectionIfNeeded timeout [ping did not pong]
That error is followed by this one, when prepareToPlay() is called:
Error Domain=MPMusicPlayerControllerErrorDomain Code=6 "Failed to prepare to play" UserInfo={NSDebugDescription=Failed to prepare to play}
Eventually after calling prepareToPlay enough times it'll get its head on straight and start playing the content, but even then I'm finding I have to call play() or pause() several times for it to do so reliably.
Anyone else seeing this in their apps post-13.4?
For a number of days now, I've been scratching my head as to why I wasn't able to play store identifiers for Apple Music catalog or library content. Turns out, setting the store identifiers directly with
MPMusicPlayerApplicationControllerwill play the content, whereas usingMPMusicPlayerStoreQueueDescriptorand passing it toMPMusicPlayerApplicationControllerresults in no effect.I still get the following error logs:
[SDKPlayback] applicationQueuePlayer _establishConnectionIfNeeded timeout [ping did not pong][core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""iTunesCloud] ACAccountStore 0x283e1bdb0 - Error retrieving iTunesStore accounts. err=Error Domain=com.apple.accounts Code=9 "(null)"[iTunesCloud] [ICUserIdentityStore] Failed to fetch local store account with error: Error Domain=com.apple.accounts Code=9 "(null)"....but gone is
Error Domain=MPMusicPlayerControllerErrorDomain Code=6 "Failed to prepare to play" UserInfo={NSDebugDescription=Failed to prepare to play}.Hopefully this might be useful for someone else who stumbles into this :)
Here's some code so you see what I mean: