I want to set the time position of a video in HTML5. The time should be set like this:
function settime(){
var video = document.getElementById(\"video1\"
Seems you're using video.js
. If so, get and set currentTime via VideoJsPlayer.currentTime()
method.
For example:
const player = videojs(document.getElementById("video1"));
// read currentTime
console.log(player.currentTime());
//set currentTime
player.currentTime(10.0);
// read currentTime
console.log(player.currentTime());
In my case I had to update video serving server to return response with Status Code 206
and Content-Range
and Content-Length
headers
I came across the same problem. Here's what happened in the bottom line.
I finally figured out an answer! Chrome requires you to set the currentTime as a String, and not as a number.
function settime() {
var video = document.getElementById("video1");
console.log(video.currentTime); // output 0
video.currentTime = 10.0;
console.log(video.currentTime); // output 0 for some chrome users or 10 for firefox and others
video.currentTime = "10.0";
console.log(video.currentTime); // output 10
}
settime();
<audio id="video1" src="https://sample-videos.com/audio/mp3/crowd-cheering.mp3" controls></audio>
<div>Click play to start the audio at 10 s.</div>
This is a bug in Chrome, which apparently only happens with 'some' videos. Similar bug reports have been filed and closed numerous times in the past, so I suggest we keep a watch on it, so it doesn't get closed again until the issue is actually fixed.
It should be
var video = document.getElementById("video1");
as you have
<video id="video1" class="video-js vjs-default-skin" muted>