npm 包 music-metadata-browser 使用教程

阅读时长 4 分钟读完

在前端开发中,我们经常会需要在页面中使用音频或者视频,而对于一些需要根据音频元数据进行展示的场合,我们需要用到一个库来进行音频信息解析。其中一个比较优秀的库是 music-metadata-browser,它可以在浏览器上进行音频元数据的解析,支持多种音频格式,本文将为大家详细介绍使用该包的方法。

安装

首先,我们需要使用 npm 进行安装:

引入并使用

安装完成后,我们就可以使用该库了,在需要使用该库的文件中引入:

然后,我们就可以使用 mm 中的方法进行音频元数据的解析,例如:

其中,audioBlob 是一个文件 Blob 对象,我们需要获取到该对象后,就可以使用 parseBlob 方法进行解析了。方法返回一个 Promise 对象,我们可以在 .then() 中获取到解析后的 metadata 信息。

详细解析

在上面的例子中,我们只是简单地获取到了音频元数据的信息,但是实际上,该库提供了更加丰富的 API,可以获取到更加详细的信息,下面是一些常用的 API:

parseBlob

该方法接收一个 Blob 对象和一些可选的参数,返回一个 Promise 对象,我们可以通过 .then() 获取到解析后的音频元数据信息。

parseBuffer

该方法接收一个 ArrayBuffer 对象、一个 mimeType 字符串以及一些可选的参数,返回一个 Promise 对象,我们可以通过 .then() 获取到解析后的音频元数据信息。

parseFromTokenizer

该方法接收一个 tokenizer 对象和一些可选的参数,返回一个 Promise 对象,我们可以通过 .then() 获取到解析后的音频元数据信息。该方法一般用于自定义音频解析器。

解析的元数据信息

无论是哪种解析方法,最终返回的 metadata 对象都包含了很多音频元数据信息,我们可以通过该对象获取到我们需要的信息,下面是一些常用的属性:

  • format:音频格式
  • duration:音频时长,单位为秒
  • bitRate:比特率,单位为 bps
  • sampleRate:采样率,单位为 Hz
  • numberOfChannels:音频频道数
  • tag:标签信息

除了以上这些属性外,metadata 对象中还有很多其他的属性,可以通过官方文档进行查看。

示例代码

下面是一个完整的示例代码,可以作为参考:

-- -------------------- ---- -------
------ - -- -- ---- -------------------------

----- ----- - --------------------------------------
----- ----- - ---------------------------------
----- ----- - ---------------------------------
----- ------ - ----------------------------------
----- ----- - ---------------------------------

-------------------------------- -- -- -
  -------------------------------------------- -- -
    --------- - ------------------------------------
    --------------- - --------------------- -- ---
    ---------------- - ---------------------- -- ---
    --------------- - --------------------- -- ---
  ---
---

该代码中,我们监听了一个 input[type=file] 元素的 change 事件,当用户选择了一个音频文件后,我们使用 mm.parseBlob 方法对文件进行解析,并获取到常用的元数据信息,然后进行展示。同时,我们也将音频文件设置为 audio 元素的 src 属性,实现了在页面中播放音频。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f0285a4403f2923b035bd51

纠错
反馈