解决新版Chrome无法使用Jazz-MIDI扩展问题(附WebMIDI SysEx报错修复脚本)

Chrome 151 稳定版彻底移除了对 Manifest V2 扩展的支持,此前所有强制开启 V2 的临时启动参数均已失效。MidiShow 所依赖的 Jazz-MIDI 插件(最后更新于 2020 年)仍基于 MV2,它已在最新版 Chrome 中无法使用。
此外,当使用浏览器原生 HTML5 WebMIDI API 播放包含 SysEx 消息的 MIDI 时,页面会抛出 InvalidAccessError 报错。
image

以下为对应的解决方案。如果在操作过程中遇到不理解步骤,可以将相关内容发送给大模型(如DeepSeek)或者使用 Codex 等 Agent 以寻求更详细的帮助


一:修复 Jazz-MIDI 扩展

步骤 1:加载 PATCH 过后的扩展

  1. 下载修改好后的扩展:蓝奏云下载(密码:midi),解压至固定目录。
  2. 打开 Chrome 扩展程序页面(chrome://extensions/),开启右上角 开发者模式
  3. 点击 加载已解压的扩展程序,选择解压后的 Jazz-MIDI 文件夹。
  4. 复制生成的新扩展 ID 并记录下来(例如:fmgmmgkdfjffjkpkbjbnpmapocgncpbc)。
    image

步骤 2:更新 Native Messaging Host 配置

  1. 打开 Jazz-Plugin 的程序安装目录(默认路径通常为 C:\Program Files (x86)\Jazz-Soft\Jazz-Plugin\),找到 com.jazz_soft.jazz_midi.chrome.json 文件。
  2. (可选) 无法确认安装路径时,可通过注册表查询:按 Win + R 输入 regedit 打开注册表编辑器,定位至 HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.jazz_soft.jazz_midi,查看其默认值获取配置文件的具体路径。
  3. 以管理员身份运行文本编辑器,然后打开该配置文件。
  4. allowed_origins 字段中的扩展 ID 修改为你刚刚复制的新 ID:
{
  "name": "com.jazz_soft.jazz_midi",
  "description": "jazz-midi",
  "path": "C:\\Program Files (x86)\\Jazz-Soft\\Jazz-Plugin\\jazz-chrome.exe",
  "type": "stdio",
  "allowed_origins": [ "chrome-extension://你的新扩展ID/" ]
}

假设记录的新扩展 ID 为 fmgmmgkdfjffjkpkbjbnpmapocgncpbc,需将 allowed_origins 这一行修改为:

"allowed_origins": [ "chrome-extension://fmgmmgkdfjffjkpkbjbnpmapocgncpbc/" ]

步骤 3:重启浏览器

  1. 保存配置文件,正常关闭 Chrome 浏览器并重新打开。
  2. 若修改未生效,可在 Chrome 地址栏输入 chrome://restart 并按回车重启浏览器。
  3. 若仍未生效,说明后台存在残留进程。请在任务管理器中结束所有 Chrome 进程,或按 Win + R 执行以下命令彻底关闭后台进程后再重新打开:
taskkill /f /im chrome.exe

二:修复 WebMIDI API 原生播放 SysEx 报错

未安装 Jazz-MIDI 时,MidiShow 会降级使用 HTML5 WebMIDI API 播放。此时若 MIDI 文件包含 SysEx 消息,浏览器会因缺失 SysEx 授权许可抛出以下错误:

InvalidAccessError: Failed to execute 'send' on 'MIDIOutput': System exclusive message is not allowed at index 0 (240).

安装我的油猴脚本重写 MIDI 权限请求即可解决:

// ==UserScript==
// @name         MidiShow SysEx 修复
// @version      1.0
// @description  修复 MidiShow 在播放包含 SysEx 消息的 MIDI 文件时报错 InvalidAccessError 的问题。
// @match        *://*.midishow.com/*
// @license      MIT
// @grant        none
// @run-at       document-start
// @namespace    https://greasyfork.org/users/466951
// ==UserScript==

(function() {
    'use strict';
    if (navigator.requestMIDIAccess) {
        const originalRequestMIDIAccess = navigator.requestMIDIAccess.bind(navigator);
        navigator.requestMIDIAccess = function(options) {
            options = options || {};
            options.sysex = true;
            return originalRequestMIDIAccess(options);
        };
    }
})();

3 Likes

Jazz-MIDI是开源的(参考Jazz-MIDI开源版构建教程(Windows)),而开源版扩展已经支持Manifest 3,只是没有直接发布。

其实不需要这么麻烦,直接在地址栏输入chrome://restart即可重启浏览器。

1 Like

感谢补充与指正w

瞅了下仓库,MV3的适配早已在去年就完成了。但目前JZZ尚未将其更新发布,所以我就先保留本帖的内容了,方便大家下载取用

另外,chrome://restart很好用,已将其补充至正文,再次感谢分享w

1 Like