上传到Firebase存储时,如何使用Cloud Functions for FIrebase获取mp3文件的持续时间

我正在为一个舞蹈应用程序build立一个音乐库。 目前我有一个云端function,当一个mp3file upload到Firebase存储时自动创build一个数据库实例,我仍然需要以某种方式获取该mp3文件的持续时间,并将该信息存储在数据库中。 我是新来的JavaScript和第一次做node.js,一些来源指向使用MP3元数据,我没有经验玩任何一个。 一些帮助将不胜感激。

要做到这一点,最简单的方法是让你的云端function下载每个MP3文件,通过一些MP3阅读库打开它,并使用一些库,如mp3-duration来获得长度。

这里的主要问题是,下载整个MP3只是为了计算其持续时间是一个浪费带宽。 你可能可以改进,但这样做可能会有点复杂,除非MP3文件方便地列出他们的持续时间在头的某个地方(我不认为是这样,但我不是很熟悉的格式) 。

使用任何工具上传对象在本地计算持续时间可能会更好,然后向正在上载的对象添加一段自定义元数据,以指示其持续时间。 自定义的元数据将可用于云function,他们可以利用它。