【发布时间】:2016-03-08 20:32:49
【问题描述】:
我正在使用带有 Express 的模块 multer 将音频文件从表单上传到服务器。我需要以某种方式知道曲目的持续时间。这可能吗?如果可以,怎么做?
【问题讨论】:
标签: node.js audio express duration multer
我正在使用带有 Express 的模块 multer 将音频文件从表单上传到服务器。我需要以某种方式知道曲目的持续时间。这可能吗?如果可以,怎么做?
【问题讨论】:
标签: node.js audio express duration multer
您可以在上传音频之前获取音频的持续时间。请参阅下面的示例。
使用 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
【讨论】: