【问题标题】:How to determine the duration of a audio file in Node or Express?如何在 Node 或 Express 中确定音频文件的时长?
【发布时间】:2016-03-08 20:32:49
【问题描述】:

我正在使用带有 Express 的模块 multer 将音频文件从表单上传到服务器。我需要以某种方式知道曲目的持续时间。这可能吗?如果可以,怎么做?

【问题讨论】:

    标签: node.js audio express duration multer


    【解决方案1】:

    您可以在上传音频之前获取音频的持续时间。请参阅下面的示例。

    使用 jQuery,这里是 solution(需要一个库)

    $("#audio").on("canplaythrough", function(e){
    var seconds = e.currentTarget.duration;
    var duration = moment.duration(seconds, "seconds");
    
    var time = "";
    var hours = duration.hours();
    if (hours > 0) { time = hours + ":" ; }
    
    time = time + duration.minutes() + ":" + duration.seconds();
    $("#duration").text(time);
    
    URL.revokeObjectURL(objectUrl);
    });
    

    或者,使用纯 Javascript,另一个 solution

    var f_duration =0;  //store duration
    document.getElementById('audio').addEventListener('canplaythrough', function(e){
      //add duration in the input field #f_du
      f_duration = Math.round(e.currentTarget.duration);
      document.getElementById('f_du').value = f_duration;
      URL.revokeObjectURL(obUrl);
    });
    

    或者您可以通过 HTML5 音频 API 获取音频时长。

    请参阅:W3Schools Example 和 HTML AUDIO DOM OBJECT

    document.getElementById("myAudio").duration
    

    【讨论】:

    • 此答案假设您使用的浏览器可能与 Node 不同。
    • 在浏览器上计算此持续时间可能不安全
    猜你喜欢
    • 2010-10-04
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多