video.currentTimeの挙動
video = document.getElementById('video') console.log(video.duration) //=> 9.88 console.log(video.currentTime) //=> 0.0 video.currentTime = 1.0 console.log(video.currentTime) //=> 1.0 video.currentTime = 8.0 console.log(video.currentTime) //=> 0 video.currentTime = 1.0 console.log(video.currentTime) //=> 0
という謎の現象に遭遇🤔
WindowsのVirtualBox上のローカルサーバから配信している動画で、http://localhost/path/to/video.webm
なんだけど。
Mac でリモートサーバの HTML5 video (webm) 再生してもこんなことにはならないし、謎。
わかったら続き書く。
追記
サーバ側の PHP 実装と Chrome に原因があったようです。探すと結構出てくるのですが、パッと当たったのはこの辺の記事。
ポイントは、206返すこと、header にいくつか加えることなようです。実際に部分配信を実装しなくてもそれだけで currentTime を操作できることを確認しました。