JS currentTime в html-видео с php-скриптом для src не работает в Chrome

В настоящее время я пытаюсь изменить currentTime видеоплеера html5, который получает свой источник из php-скрипта (метод заголовков). видео загружается корректно и у меня есть доступ к командам через JS:

Загружаю видео через php-скрипт в тег html5

<video controls id="MyVideo">
    <source src="getVideo.php?nom=sunset_plaine&sens=1&qualite=hd" type="video/mp4" />
    <!--<source src="datas/videos/voie_lactee_1_hd.mp4" type="video/mp4" />-->
</video>

Я могу управлять видео JS

var myvideo = document.getElementById("MyVideo");
myvideo.play();

после загрузки видео (событие может воспроизводиться) я могу получить информацию о видео

console.log(myvideo.duration);
console.log(myvideo.currentTime);

Я не могу изменить текущее время видео, и команда не возвращает никаких ошибок

console.log(myvideo.currentTime);

myvideo.currentTime = 2.6;

console.log(myvideo.currentTime);

если я заменю php-скрипт на прямую ссылку на видео, я могу изменить currentTime

<video controls id="MyVideo">
    <!--<source src="getVideo.php?nom=sunset_plaine&sens=1&qualite=hd" type="video/mp4" />-->
    <source src="datas/videos/voie_lactee_1_hd.mp4" type="video/mp4" />
</video>

этот код отлично работает в IE и FF, проблема возникает в хроме

Есть ли кто-нибудь, кто может пролить свет на этот вопрос?

Спасибо !


person Thomas    schedule 12.11.2018    source источник


Ответы (1)


Я нашел решение, играя с заголовками в моем php-скрипте getVideos.php:

Я просто использовал один заголовок, прежде чем читать видео в php-скрипте:

header('Content-Type: video/mp4');

Я добавляю это, и currentTime теперь можно редактировать в Chrome (не спрашивайте меня, почему...):

header("Content-Disposition: inline;");

Я воспользовался возможностью, чтобы добавить их также:

header('Accept-Ranges: bytes');
header('Content-Length: '. filesize($file_path_name));
header("Content-Transfer-Encoding: binary");
header('Connection: close');

Это все.

person Thomas    schedule 13.11.2018