iOS 10よりも前の場合は特に問題なかったが、iOS 10になってからロック画面への音楽情報の表示や、再生などの制御が実機でできない。
なぜかシミュレーターではちゃんと表示や再生制御ができる。
以下のようにセッションを定義しているとできないらしい。
AVAudioSessionSetting_NG.m
AVAudioSession *session = nil;
session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback
withOptions:AVAudioSessionCategoryOptionMixWithOthers |
AVAudioSessionCategoryOptionDuckOthers];
正しくは、以下。
AVAudioSessionSetting_OK.m
AVAudioSession *session = nil;
session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback];
裏でこそこそ仕様が変わるのはAppleの御家芸だけれど、シミュレーターがちゃんとシミュレートしてくれないからどこに原因があるのか、最初、さっぱりわからなかった…。お陰様でApple Developersに年会費払ってなかったのが原因かと思って年会費まで払ってしまった。金返せAppleめ…💢