查找上传到 React 应用程序的音频文件的时间 duration/length

Find the time duration/length of an audio file uploaded to a React application

我有一个 React 网络应用程序 (create-react-app),它使用 react-hook-forms 上传歌曲并使用 axios 将其发送到我的 Node/express 服务器。 在发送要存储在 AWS S3 存储桶中的音频文件之前,我想确定歌曲的长度并将此值存储在我的 postgresql 数据库中。

Here is an example of an mp3 console log

谢谢!

可以使用Web Audio API。获得音频上下文对象后,您可以使用 decodeAudioData 方法来执行您想要执行的操作。该方法采用一个回调函数,该函数采用一个参数:一个 AudioBuffer 具有只读 duration 属性。也就是说,

audioContext.decodeAudioData(audioData, (buffer) => {
    const duration = buffer.duration;
    // do stuff with the duration
});