LoginSignup
2
2

More than 5 years have passed since last update.

[iOS11.1]prepareToPlayを無理やり実行させる

Last updated at Posted at 2017-11-07
let c = MPMusicPlayerController.systemMusicPlayer
var d = MPMusicPlayerStoreQueueDescriptor(storeIDs: ["500044854"])
c.setQueue(with: d)
c.prepareToPlay { (error) in //A
  print(error)
  c.play()
}
c.prepareToPlay() //B

preparePlay(A)後にprepareToPlay(B)を呼ぶと、Aがキャンセルされるが即時再生される。
この時isPreparedToPlayはfalseだが大体は正常に再生された。(iOS11.1/iPhoneX)

キャッシュを強制的に呼び起こしてる…?

let c = MPMusicPlayerController.systemMusicPlayer
var d = MPMusicPlayerStoreQueueDescriptor(storeIDs: ["500044854"])
c.setQueue(with: d)
c.play()
c.prepareToPlay { (error) in
  print(error)
  c.play()
}

これも即座に再生された。
エラーはnotfoundが返される。キャッシュが無い場合の挙動は不明。

AppleMusicのキャッシュ消したいんだけどどうすればいいんだろ…。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2