Synchronized iPhones! @TachibanaKaoru #iosdc #b
https://fortee.jp/iosdc-japan-2018/proposal/d224cd51-1187-4bfe-a801-0eb7dcf236b8
複数のiPhoneを、連携させたことがありますか?
一面にならんだ数十台のiPhoneにシンクロナイズドスイミングのような全く同じ表示をさせる……単純に見えますが、実は技術的にはとても高度なテクニックを必要とします。
フレームレート60fpsのiPhoneで、ぴったりあった動作を実現するためには端末間に許されたずれは、16ミリ秒以下。
続きを読む
にわタコ
@niwatako
いろいろ調べたけど、iOS端末同士の時刻を比べると、16msより誤差が大きいので同期にあたって役には立たないことがわかった。 #iosdc #b
2018-09-01 15:30:58
Y.Grace
@y_01011001
Bluetoothで、画像データ自体ではなく予め持っている画像のどれを出すかだけの情報送信でも、20msほどずれてしまい16msに収まらない 惜しい #iosdc #b
2018-09-01 15:34:35
にわタコ
@niwatako
PeripheralとCentralで双方向に情報を送ることで揃えていかないか。 通信時の遅延を消去する。 Peripheralが今の秒を送る。 Centralについた瞬間、ちょっとずれているけど、Centralはもらった時間しか基準はないので、その1に合わせて時間軸を合わせる。 #iosdc #b
2018-09-01 15:36:21
にわタコ
@niwatako
PeripheralとCentralの時間がずれる。 このあと、Centralがちょっとしてからいま私は1.4秒ですよというのを送る。それがPeripheralから見ると2.6に見えるとする そうしたらPeripheralが自分にとっての3と、1.4から考えたCentralの時間であろう2.6を返す これでおたがい時間差を算出できる #iosdc #b
2018-09-01 15:36:27
Y.Grace
@y_01011001
centralからperipheralに自分の時間を送り、peripheralからは自分の時間との差を送ることで、通信の遅延による差の問題を解消した 10msほどに収まった すごい #iosdc #b
2018-09-01 15:36:50
にわタコ
@niwatako
ところがBluetoothは5台つながらなかった 端末によって接続可能数が変わってくるのでAppleの方で使用を書いてはいない。 #iosdc #b
2018-09-01 15:37:07