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

Bow*_*Sun 5 node.js google-cloud-storage firebase google-cloud-functions firebase-storage

我正在为舞蹈应用程序构建音乐库。目前,当 mp3 文件上传到 Firebase 存储时,我让 Cloud Function 自动创建一个数据库实例,我仍然需要以某种方式在几秒钟内获取该 mp3 文件的持续时间并将该信息存储在数据库中。我是 javascript 新手,第一次使用 node.js,一些消息来源指出使用 mp3 元数据,我也没有使用过。一些帮助将不胜感激。

Bra*_*ugh 0

最简单的方法是让您的云功能下载每个 MP3 文件,通过一些 MP3 读取库打开它,并使用一些库获取长度,例如mp3-duration.

这里的主要问题是,仅仅为了计算其持续时间而下载整个 MP3 会浪费带宽。您可能可以对此进行改进,但这样做可能会有些复杂,除非 MP3 文件恰好在标头中的某个位置方便地列出了它们的持续时间(我不认为是这种情况,但我对这种格式不是很熟悉) 。

最好让上传对象的任何工具在本地计算持续时间,然后向正在上传的对象添加一条自定义元数据以指示其持续时间。自定义元数据将可供云功能使用,云功能可以使用它。