首页  >  问答  >  正文

如何获取HTML5音频的播放时长

<p>我在页面中有一个html5的<code><audio></code>标签,但是我如何知道它的持续时间?</p> <pre class="brush:php;toolbar:false;"><audio controls=""> <source src="p4.2.mp3"> </audio></pre> <p><br /></p>
P粉545218185P粉545218185444 天前602

全部回复(1)我来回复

  • P粉792673958

    P粉7926739582023-08-23 11:57:19

    2020解决方案:

    当音频元数据尚未加载时,您将获得undefinedNaN(不是数字)。因此,有些人建议首先使用onloadedmetadata确保音频文件的元数据被获取。此外,大多数人没有提到的是,您必须使用[0]来定位音频DOM元素的第一个索引,像这样:

    -- 原生JavaScript:

    var audio = document.getElementById('audio-1');
    audio.onloadedmetadata = function() {
      alert(audio.duration);
    };

    如果这不起作用,请尝试以下方法,但这种方法不太可靠,而且依赖于用户的连接:

    setTimeout(function () {
        var audio = document.getElementById('audio-1');
        console.log("audio", audio.duration);
    }, 100);

    -- JQuery:

    $(document).ready(function() {
       var audio = $("#audio-1")[0];
       $("#audio-1").on("loadedmetadata", function() {
           alert(audio.duration);
       }); 
    });

    回复
    0
  • 取消回复