как получить общую длительность видео html5 без воспроизведения видео - PullRequest
0 голосов
/ 23 февраля 2019

Я нашел в сети что-то, что примерно похоже на то, что я пытаюсь достичь, но вот несколько проблем, с которыми я столкнулся.(1) Я хочу, чтобы время было в формате минут и секунд.(2) код работает только для одного видео в моем HTML-файле.Как я могу заставить код работать для нескольких видео в моем файле, показывающих их разную продолжительность.ниже код

<script> var myVideoPlayer = document.getElementById('video_player'), meta = document.getElementById('meta'); myVideoPlayer.addEventListener('loadedmetadata', function () { var duration = myVideoPlayer.duration; meta.innerHTML = "Duration is " + duration.toFixed(2) + " seconds." }); </script> 
<video id="video_player" width="320" height="240" controls poster="something/something.jpg"> <source src="someVideo.mp4" type="video/mp4"> </video>

<div id="meta"></div>

Это то, чего я хочу достичь, используя codeigniter

enter image description here

1 Ответ

0 голосов
/ 23 февраля 2019

Вот так:

<video width="320" height="240" id = "myVideo" controls>
  <source src="someVideo.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

<script>
var e = document.getElementById("myVideo");
var cancelAlert = false;
var run = function() {
if (e.readyState === 4 && !cancelAlert) {//readyState 4 means it is loaded fully
cancelAlert = true;//This is so that it only alerts once. No spam pls.
alert(e.duration);
}
requestAnimationFrame(run);//This is so that it runs every frame.
};
run();//run the function
</script>

Возможно, вам понадобится внести некоторые изменения, и, возможно, есть более эффективный способ сделать это, но это то, что я делаю.

...