【问题标题】:how to get html5 video total duration displayed without playing the video如何在不播放视频的情况下显示 html5 视频总时长
【发布时间】:2019-07-17 03:30:55
【问题描述】:

我确实在网上找到了一些与我试图实现的目标相似的东西,但这里有一些我遇到的问题。 (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 实现的目标

【问题讨论】:

    标签: html video codeigniter-3 using duration


    【解决方案1】:

    像这样:

    <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>
    

    您可能需要进行一些调整,并且可能有更有效的方法来做到这一点,但这就是我所做的。

    【讨论】:

    • 嗨Vakore,它实际上并没有按预期工作,一开始它会警告'NaN',然后当你点击确定时,它只显示普通玩家,没有任何隐藏控件的效果然后只有显示视频时长“就像上图一样,这就是我想要实现的”。
    • 真的不行。是否有任何外部 .js 链接可以添加或 css 样式以使其正常工作?我真的很感谢你经历一切
    • 我更新了我的答案。它返回“NaN”的原因是视频尚未加载。
    • 我很欣赏你的努力,但显然不是我想要的。无论如何,我确实在网上找到了一些与我试图实现的目标相似的东西,但这是我遇到的问题。希望你能帮助我。(1)我希望时间是分秒格式。 (2) 该代码仅适用于文件中的一个视频。我怎样才能使代码适用于我文件中的每个多个视频,所有视频都显示了它们不同的持续时间。下面是代码
    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2011-10-27
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多