npm 包 @mohayonao/midi-device 使用教程

介绍

在 Web 前端应用中,与硬件打交道的场景越来越常见。而处理 MIDI 消息也不再是独属于桌面应用的领域。@mohayonao/midi-device 是一个能够让你通过 WebMIDI API 检测 MIDI 设备的 npm 包。

安装

使用 npm 安装 @mohayonao/midi-device:

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

使用

在你的前端应用中引入并使用 @mohayonao/midi-device:

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

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

这个例子展示了如何使用 MidiDevice.enumerate() 方法来枚举所有 MIDI 设备。在上面的代码中,promise 会返回一个 MIDI 设备信息的数组。在数组中,每个 midiDevices[index] 包含以下基本信息:

属性 类型 描述
id string 设备 id
manufacturer string 制造商
name string 设备名称
type string 设备类型 (“input”, “output”)
version string 设备的版本号,通常为“1”
state string 设备的连接状态
connection string 设备的连接类型 (“closed”, “open”, “pending”)。这些值表示设备是否被打开,并且是否成功连接到系统。
onstatechange function 设备连接状态发生变化时回调函数
addEventListener function 添加互动事件侦听器的功能。(e.g. “inputdata”, “statechange”, etc)

下面是针对 midiDevices 数组的更复杂示例:

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

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

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

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

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

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

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

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

上面的代码展示了如何在 Web 应用中检测 MIDI 设备,并针对输入和输出设备可分别进行不同的事件处理。

总结一下,使用 @mohayonao/midi-device 可以:

  • 进行多种对 MIDI 设备的检测
  • 灵活处理应用程序所需的事件
  • 熟练掌握调试技巧来进一步加强对 Web MIDI API 及其应用的理解。

参考文献:

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066bcc967216659e2447ba


猜你喜欢

  • npm 包 @nathanfaucett/create_map 使用教程

    简介 在前端开发中,我们经常需要使用地图。@nathanfaucett/create_map 是一个方便的 npm 包,可以帮助我们快速创建基于 OpenLayers 的地图,并提供简单易用的 API...

    4 年前
  • npm 包 @nathanfaucett/create_nodes_from_markup 使用教程

    介绍 @nathanfaucett/create_nodes_from_markup 是一个快速创建 DOM 节点的工具。你可以使用该工具将 HTML 标记转换成 DOM 节点,这在编写前端 UI 组...

    4 年前
  • npm 包 @nathanfaucett/create_store 使用教程

    在前端开发中,状态管理是非常重要的一环。管理起来不仅能够清晰地维护数据,而且还能提高代码的可复用性和可维护性。在 JavaScript 开发中,有许多非常成熟的状态管理库,如 Redux、Mobx 等...

    4 年前
  • npm 包 @nichoth/router 使用教程

    在前端开发中,路由是一个非常重要的概念,因为它决定了用户访问不同页面时 URL 的变化,这也是网站开发的核心之一。@nichoth/router 是一个轻量级的 JavaScript 库,它提供了一种...

    4 年前
  • npm 包 @nathanfaucett/crypto_browser 使用教程

    介绍 在现代前端应用中,加密操作是极其重要的一环,用于保护用户以及应用程序的数据不被恶意攻击者获取。npm 包 @nathanfaucett/crypto_browser 是一个提供了前端浏览器加密功...

    4 年前
  • npm 包 @nickbottomley/react-paginate 使用教程

    简介 在现代 Web 开发中,分页是很常见的需求。而 @nickbottomley/react-paginate 是一款使用 React 实现的简单易用的分页组件,可以使用 npm 方便地安装和引入。

    4 年前
  • 详解前端 @nickdecooman/redux-little-router 包的使用教程

    什么是npm包? npm 是Node.js的包管理器,提供一个仓库供用户下载和管理开源组件(代码库)。在项目开发中,我们可以通过npm安装所需的包,实现代码的复用,减少编写代码的时间和精力。

    4 年前
  • npm 包 @nickgravelyn/eslint-config 使用教程

    在前端开发中,代码风格的一致性是非常重要的,它可以帮助我们更好地维护代码和减少错误。使用 eslint 是一种非常有效的方式来保持代码风格的一致性。而这里要介绍的则是一个非常好用的 eslint 配置...

    4 年前
  • npm包@nickroberts/ng-feature-flags使用教程

    在前端开发过程中,有时需要在不同用户、环境或条件下展示不同的功能。@nickroberts/ng-feature-flags是一个简单的Angular插件,它可以帮助你对功能进行管理,并在不同的情况下...

    4 年前
  • npm 包 @nicktaylor98/cwp-22-1 使用教程

    什么是 @nicktaylor98/cwp-22-1? @nicktaylor98/cwp-22-1 是一款基于 React 的组件库,该组件库的目标是帮助开发者更快速、更高效地构建前端界面。

    4 年前
  • npm 包 @nicktomlin/react-table 使用教程

    在前端开发过程中,数据展示是一个常见的需求。而表格作为一种常见的数据展示方式,其功能和样式的丰富程度都直接影响着用户体验和页面效果。@nicktomlin/react-table 是一个基于 Reac...

    4 年前
  • npm 包 @nickvirtue/ui-tools 使用教程

    @nickvirtue/ui-tools 是一款前端 UI 工具包,提供了多个常用的 UI 组件和工具函数,可以帮助开发者快速构建界面,并提高开发效率。本文将详细介绍如何安装和使用该工具包,并提供示例...

    4 年前
  • 什么是 content-type: text/json 和 application/json 的确切区别?

    在前端开发中,我们通常需要使用 JSON(JavaScript Object Notation)格式来传输数据。当我们向服务器发送请求以获取 JSON 数据时,我们需要设置正确的 Content-Ty...

    4 年前
  • npm 包 @nicky9112/exproxy 使用教程

    在前端开发中,为了避免跨域问题,我们通常会使用代理服务器。但是,如果需要多次使用代理服务器,配置起来会相当麻烦。而有了 @nicky9112/exproxy 这个 npm 包的存在,我们可以轻松地实现...

    4 年前
  • npm 包 @nicolasparada/web-framework 使用教程

    简介 在现代 web 开发中,前端框架是非常重要的工具。但是,很多时候我们可能需要自己构建一个轻量级的框架来实现自己的需求。在这种情况下,@nicolasparada/web-framework 就是...

    4 年前
  • npm 包 @nidreim/conversor-kg-lb 使用教程

    有时候在项目中需要将单位从公斤转换为磅或者相反的转换,而这时候就可以使用 npm 包 @nidreim/conversor-kg-lb 来简化代码实现。 安装 首先需要在项目中安装该包,可以使用 np...

    4 年前
  • npm 包 @nathanfaucett/css 使用教程

    简介 在前端开发中,CSS 的编写对于网页展示效果至关重要。@nathanfaucett/css 是一款使用方便的 npm 包,它提供了一系列实用的基础 CSS 样式。

    4 年前
  • npm 包 @nidreim/platzom 使用教程

    在现代web应用程序的开发中,我们通常需要实现一些字符串处理逻辑。在这些字符串处理逻辑中,我们通常需要实现类似于大小写转换、删除空格、删除元音字母等等的操作。在过去,这些转换逻辑通常需要手动编写,使得...

    4 年前
  • npm 包 @nathanfaucett/curry 使用教程

    在 JavaScript 开发中,函数是最重要的工具之一。为了让代码更加清晰和可维护,我们经常需要使用到函数柯里化(Currying)的技术。npm 包 @nathanfaucett/curry 就提...

    4 年前
  • npm 包 @nathanfaucett/curry_right 使用教程

    在前端开发中,很多时候我们需要写一些函数来解决特定的问题,但是在写函数时我们经常会出现代码复杂、参数繁多的情况。这时候,使用函数柯里化技术可以让我们的代码更加简洁、易读。

    4 年前

相关推荐

    暂无文章