Ios 在设备上使用播客应用程序时,MPMusicLayerController未启动(前台)

Ios 在设备上使用播客应用程序时,MPMusicLayerController未启动(前台),ios,swift,iphone,mpmusicplayercontroller,podcast,Ios,Swift,Iphone,Mpmusicplayercontroller,Podcast,我正在开发一个IOS应用程序,在与用户进行一些交互后,一些计时器完成运行,我正在播放音乐库中的音乐。它与本地音乐和有声读物(图书应用程序)以及第三方音乐播放器配合得很好。我正在通过播放另一个应用程序(音乐、书籍等)中的一些音乐来测试这一点,看看我的应用程序是否会在触发时替换正在播放的内容,并从我的应用程序中播放音乐,它会这样做 奇怪的是,我今天开始用podcast应用程序进行测试,但它的工作并不一致,有时它会停止播放podcast,有时它不会,设备只是忽略musicPlayer.play(),让

我正在开发一个IOS应用程序,在与用户进行一些交互后,一些计时器完成运行,我正在播放音乐库中的音乐。它与本地音乐和有声读物(图书应用程序)以及第三方音乐播放器配合得很好。我正在通过播放另一个应用程序(音乐、书籍等)中的一些音乐来测试这一点,看看我的应用程序是否会在触发时替换正在播放的内容,并从我的应用程序中播放音乐,它会这样做

奇怪的是,我今天开始用podcast应用程序进行测试,但它的工作并不一致,有时它会停止播放podcast,有时它不会,设备只是忽略musicPlayer.play(),让podcast继续运行

我尝试了三种不同的媒体播放器

let applicationMusicPlayer = MPMusicPlayerController.applicationMusicPlayer
let systemMusicPlayer = MPMusicPlayerController.systemMusicPlayer
let applicationQueuePlayer = MPMusicPlayerController.applicationQueuePlayer
let mediaItems = MPMediaQuery.songs().items
if mediaItems != nil {
  let mediaCollection = MPMediaItemCollection(items: mediaItems!)
  applicationMusicPlayer.setQueue(with: mediaCollection)
  systemMusicPlayer.setQueue(with: mediaCollection)
  applicationQueuePlayer.setQueue(with: mediaCollection)
  applicationMusicPlayer.prepareToPlay()
  systemMusicPlayer.prepareToPlay()
  applicationQueuePlayer.prepareToPlay()
  applicationMusicPlayer.play()
  systemMusicPlayer.play()
  applicationQueuePlayer.play()
}
我分别试过,甚至一起试过:但它仍然不可靠,有时有效,有时无效。我使用
UIApplication.shared.isIdleTimerDisabled=true将我的应用程序保持在前台打开状态,并防止屏幕锁定,我将在稍后阶段发布它

有一个“非常丑陋”的黑客,我设法做到这一点,工作可靠

 var x = 50

 while x > 1 {
   applicationQueuePlayer.play()
   x -= 1
 }
请告知是否有办法确定设备当前播放项目的优先级?比如给我的应用程序一个更高的优先级,这样它就可以迫使手机停止播放其他任何东西,并通过我的应用程序播放音乐

另请注意: 有时,我在初始化媒体播放器后立即出现此错误

[SDKPlayback] applicationQueuePlayer _establishConnectionIfNeeded timeout [ping did not pong]
[core] Error returned from daemon: 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
我在网上查看了一下,发现IOS 13似乎有一个bug,但不确定它是否相关(我有时会在它工作或不工作时发现)

信息:

  • Xcode:11.4.1版(11E503a)
  • 设备:iPhone8,4(iPhone SE)
  • 设备IOS:13.4.1构建17E262
  • 部署IOS:13.3