javascript - 页面上多个视频的显示持续时间

标签 javascript html video html5-video metadata

我正在尝试使用 JavaScript 在页面上显示每个视频的“持续时间”。 这是我到目前为止所想到的:

var vid = document.querySelector(".mhdividdur");
vid.onloadedmetadata = function() {
  var x = document.querySelector(".mhdividdur").duration;
document.querySelector(".mhdi_video_duration").innerHTML = x;
};
<video class="mhdividdur" width="240px" controls preload="metadata" poster="http://cdn1.ko.cowa.ir//kocofeaturedimage.jpg">
<source src="http://cdn1.ko.cowa.ir//hwasa.mp4" type='video/mp4'>
</video>
<p class="mhdi_video_duration"></p>
<video class="mhdividdur" width="240px" controls preload="metadata" poster="http://cdn1.ko.cowa.ir//kocofeaturedimage.jpg">
<source src="http://cdn1.ko.cowa.ir//numb.mp4" type='video/mp4'>
</video>
<p class="mhdi_video_duration"></p>

问题是它只返回第一个视频的持续时间。

我应该做什么?

附注如果除了JavaScript之外还有其他方式显示时长,请给我提示。

谢谢大家

最佳答案

使用querySelector函数,您可以获得与您输入的选择器匹配的第一个元素。这就是为什么您需要使用 querySelectorAll 函数获取所有视频元素,该函数将返回元素数组并循环打印其持续时间。

var videos = document.querySelectorAll(".mhdividdur");
var durationsEl = document.querySelectorAll(".mhdi_video_duration");
for(let i = 0; i < videos.length; i++) {
  videos[i].onloadedmetadata = function() {
    durationsEl[i].innerHTML = videos[i].duration;
  };
}
<video class="mhdividdur" width="240px" controls preload="metadata" poster="http://cdn1.ko.cowa.ir//kocofeaturedimage.jpg">
<source src="http://cdn1.ko.cowa.ir//hwasa.mp4" type='video/mp4'>
</video>
<p class="mhdi_video_duration"></p>
<video class="mhdividdur" width="240px" controls preload="metadata" poster="http://cdn1.ko.cowa.ir//kocofeaturedimage.jpg">
<source src="http://cdn1.ko.cowa.ir//numb.mp4" type='video/mp4'>
</video>
<p class="mhdi_video_duration"></p>

关于javascript - 页面上多个视频的显示持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64078379/

相关文章:

javascript - 如何动态更改 jsPlumb 中的 targetOption 和 sourceOption anchor ?

html - 如何水平对齐图像和无序列表?

html - 如何使用媒体查询使我的列堆叠在一起

ios - 为什么这个加密的 HLS 视频不能在 iOS 上播放(但可以通过 hls.js 库在 Windows Chrome 上运行)?

video - 使用 FPGA 捕获 CMOS 视频,编码并通过以太网发送

javascript - PDF.js CORS 问题

javascript - 如何使用 javascript 创建 elementor block

javascript - 滚动到下一个类元素

swift - 在 Swift 中将视频上传到 YouTube

javascript - 用javascript计算欧洲iban