トップページ > プログラム > 2015年11月28日 > zYBVt+cc

書き込み順位&時間帯一覧

40 位/199 ID中時間01234567891011121314151617181920212223Total
書き込み数1000100000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net

書き込みレス一覧

+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
369 :デフォルトの名無しさん[sage]:2015/11/28(土) 00:07:51.49 ID:zYBVt+cc
audioContext.currentTimeはPCでは実装できたのですが
iPhoneだとどうもaudioContext.currentTimeは動作しないらしく
値が0に固定されるようなのでトライしたものの残念な結果になりました

>>364,365
seIntervalはそこまで信用していないのですが
20msだろうと、それが50msになろうと、
呼び出した中でDate.now()の返り値が正常であれば
それにoffsetを足して表示するだけの話なので
setIntervalが不安定でもそこまで問題ないように思えるのですが・・・

まぁさすがにsetIntervalが200msくらい遅れるとかなら困りますが・・・

>>366
システムの仕様は明かされていませんが
ほぼ合流不可能な中でこれまで同時押しでかなり高確率で合流できています
時刻合わせしなかったらまず合流できることはありません
まだ時計の精度は悪かった時よりも
NTPで時刻の精度を上げて以降、合流できる確率が上がったのも事実です(体感ですが)

>>368
TS3って調べてみたのですがボイチャですか?
最終的に不特定多数の人に公開したいツールなので
ボイチャはちょっときついかもです

ということで・・・、audioのcurrentTimeがダメだったので
もう少し別のやり方を検討してみます
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
372 :デフォルトの名無しさん[sage]:2015/11/28(土) 04:19:17.89 ID:zYBVt+cc
performance.now()というaudioのcurrentTimeと似たような関数があったので、それで実装してみました。
iOSでも動作するようです。

時刻をNTPで合わせた瞬間からの経過時間を計測し
その経過時間を加算して現在時刻を表示するというアルゴリズムで実装しました
Date.nowは一切使ってません。
performance.now()は結構精度がいいようで
割と時刻が同期されるようになりました

ただ、iPhoneがスリープ状態に入ったときにカウントが止まってしまうので
それが問題になりました。
それは、スリープを検知するような関数を実装して
スリープを検知したらページをリフレッシュするようにして解決しました。
これで今のところ何時間かたってもほとんどズレがないようになったような気がします。
もう少し運用してみないと分かりませんが・・・

とりいそぎ、同じ状況で困った人がいたときのためのメモ書きです。

ちなみに色々調べてたらDate.now()というかnew Date()もそうなんですが
どうも動作が遅いようです。
http://konbu13.hatenablog.com/entry/2014/02/08/113447
のページによると140ms〜230msかかっているようで
確かにその時間は僕のやりたいことから考えるとクリティカルな遅さです
iOSとかは特にその遅さの影響を受け安かったんですかね・・・
その他リソースの使用状況にもよるかもしれませんが

とりあえず割といい精度になってきたので書き込みはこれで最後にします
色々情報くれた方ありがとうございました、助かりました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。