LoginSignup
1
1

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
  print(error)
  c.play()
}

iOS10の時はcompletionHandlerがちゃんと返ってきた気がするけど、iOS11.1で返ってこない…。
Shazamがすぐ再生されるので使い方が間違っているのかな…。

追記

何度か繰り返していたら動くようになった。
ストリーミングまで時間がかかるのかな…?だとしても時間かかりすぎだと思う。

追記2

なんでも良いので再生中の状態でprepareToPlayを呼ぶと成功しやすい感じがする。
再生していない状態からだと再生に時間がかる

追記3

AppleMusic未加入端末iOS11.0.3ではすぐにError Domain=MPErrorDomain Code=4 "(null)"が返ってきた

追記4

AppleMusic加入端末iOS11.0.3ではすぐに再生されたが、ライブラリ内の違う曲が再生された。
また
MPMusicPlayerController: Server is not running, deferring check-in
というログが吐かれた。
error: nil
isPreparedToPlay: false

二回目の実行で該当の曲が流れた。
error: nil
isPreparedToPlay: true

1
1
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
1
1