搜尋

首頁  >  問答  >  主體

如何取得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粉545218185464 天前622

全部回覆(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
  • 取消回覆