npm 包 music-metadata-browser 使用教程

在前端开发中,我们经常会需要在页面中使用音频或者视频,而对于一些需要根据音频元数据进行展示的场合,我们需要用到一个库来进行音频信息解析。其中一个比较优秀的库是 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


猜你喜欢

  • npm包babel-plugin-transform-cjs-dew使用教程

    引言 在使用Node.js开发后端应用时,CommonJS规范是主流的代码组织方式。但是经常使用的CommonJS模块载入方式(require())在浏览器环境下不被原生支持,所以需要通过babel将...

    4 年前
  • npm 包 git-credential-node 使用教程

    简介 在前端项目的开发过程中,版本控制工具 git 扮演着非常重要的角色。Git 可以帮助我们完成版本控制、分支管理、代码合并等工作。而在使用 git 进行代码管理的时候,我们通常需要输入账号和密码,...

    4 年前
  • npm 包 @jspm/core 使用教程

    什么是 @jspm/core? @jspm/core 是一个轻量级的 JavaScript 模块加载器,它可以让开发者方便地在项目中引入各种 JavaScript 模块,而不用担心它们的依赖关系和加载...

    4 年前
  • npm 包 rollup-plugin-jspm 使用教程

    简介 rollup-plugin-jspm 是一个可以让你在使用 Rollup 进行前端打包时直接使用 JSPM 的包管理器的插件。它可以让你更方便快捷地管理依赖和进行模块化开发。

    4 年前
  • npm 包 sver 使用教程

    前言 在前端开发中,我们经常需要处理版本号。而对于版本号的比较、约束、升级等操作,有一款非常好用的 npm 包:sver。Sver 可以帮助我们轻松地处理版本号,本文将详细介绍如何使用 sver。

    4 年前
  • npm 包 fl-watch-tree 使用教程

    在前端开发中,随着项目的增多以及开发团队的扩大,代码的管理和维护变得愈发重要。此时,监测代码变化和自动构建的需求也随之增加。 fl-watch-tree 是这类需求的解决方案之一,它是一个用于监测文件...

    4 年前
  • npm 包 @prantlf/jsonlint 使用教程

    @prantlf/jsonlint 是一个能够检查 JSON 格式的 npm 包,使用它可以避免因为格式错误产生的 bug。这篇文章将详细介绍该 npm 包,包括其作用、如何安装和使用,以及代码示例和...

    4 年前
  • npm 包 check-dts 使用教程

    如果你是一位前端开发者,那么你可能会遇到这样的问题:当你编写 TypeScript 代码时,如何确保编写的类型定义文件(.d.ts 文件)是正确的?如果你在使用 TypeScript 的同时,又使用了...

    4 年前
  • npm 包 inline-style-parser 使用教程

    在前端开发中,我们经常需要操作 DOM 样式。在一些特定的情况下,我们可能需要解析行内 style 属性并对其进行操作。这时候,就可以使用 npm 包 inline-style-parser,它可以帮...

    4 年前
  • npm 包 qs-iconv 使用教程

    在前端开发中,处理字符串编码问题是一件很常见的任务。而 npm 包 qs-iconv 就是一个用于解决 URL 参数编码问题的工具库。本文将为你详细介绍 qs-iconv 的使用教程,以及提供示例代码...

    4 年前
  • npm 包 internal-slot 使用教程

    在前端领域,我们常常会使用 npm 包来完成项目的开发任务。其中,npm 包 internal-slot 更是一个前端开发者不可或缺的工具。本文将介绍 npm 包 internal-slot 的使用方...

    4 年前
  • npm 包 @pre-bundled/tape 使用教程

    前言 在前端开发中,我们经常会需要进行单元测试来保证代码的质量,而 tape 是一个非常轻量级的用于测试 JavaScript 代码的工具。然而,tape 并没有提供一些必要的工具和插件,比如测试覆盖...

    4 年前
  • npm包editorconfig-get-indent使用教程

    在开发过程中,不同的开发者和项目可能会有不同的代码缩进风格,这可能导致代码可读性降低,给后续维护和协作带来困难。为此,我们可以使用editorconfig规范工具来统一代码缩进风格。

    4 年前
  • npm 包 standard-reporter 使用教程

    在前端开发中,代码规范是非常重要的。而标准的代码规范不仅能够提高代码的可读性和可维护性,也能够避免一些常见的错误和潜在的问题。为了让开发者能够更好地遵守代码规范,有许多工具和规范可以选择。

    4 年前
  • npm 包 @types/hyperscript 使用教程

    前言 在前端开发中,我们经常会使用一些第三方库和框架,为了确保编写的代码能够正确无误的使用这些库和框架的 API,我们通常需要使用一个强大的工具—— TypeScript。

    4 年前
  • npm包 @types/virtual-dom使用教程

    随着前端技术的快速发展,越来越多的开发者开始使用使用虚拟DOM(virtual DOM)来提高应用的性能。而对于typescript开发者来说,@types/virtual-dom就是一个非常有用的工...

    4 年前
  • npm 包 md-attr-parser 使用教程

    前言 在前端开发中,Markdown 十分常用。通常我们为了美观以及复用性,还会使用很多 Markdown 插件和工具。而 md-attr-parser 就是其中一个值得推荐的 npm 包。

    4 年前
  • npm 包 html-event-attributes 使用教程

    简介 html-event-attributes 是一个 NPM 包,它提供了 HTML 元素的事件属性的类型定义,以便在 TypeScript 项目中使用时能有更好的编程体验和类型检查。

    4 年前
  • npm 包 svg-event-attributes 使用教程

    前言 在前端开发过程中,我们经常使用 SVG(Scalable Vector Graphics)图像来呈现图形或图形化数据。同时,为了使 SVG 元素能够对用户的交互行为作出响应,我们需要对它们添加事...

    4 年前
  • npm 包 highlightjs-graphql 使用教程

    在前端开发中,我们经常需要展示 GraphQL 查询语句或者响应结果。为了方便展示,我们可以使用 highlightjs-graphql 这个 npm 包来进行语法高亮。

    4 年前

相关推荐

    暂无文章