JS currentTime в html видео с php скриптом для src не работает на Chrome - PullRequest
0 голосов
/ 12 ноября 2018

В настоящее время я пытаюсь изменить 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);

Я не могу изменить 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, проблема возникает в Chrome

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

Спасибо!

1 Ответ

0 голосов
/ 13 ноября 2018

Я нашел решение, поиграв с заголовками в моем 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');

Вот и все.

...