系统提示音 NodeJS 自定义频率和持续时间

System beep NodeJS custom frequency and duration

我正在尝试使用 NodeJS 使自定义主板发出蜂鸣声。 现在我正在使用 process.stderr.write("[=10=]7");,它会在我的主板上发出默认系统蜂鸣声 (Windows 7 64)。

但是一些编程语言有类似的东西: SoundBeep, Frequency, Duration(AutoHotKey:https://www.autohotkey.com/docs/commands/SoundBeep.htm

而且显然在 C++ 中也是可能的: Beep(hertz, milli) (How to make Motherboard Beep through C++ Code?)

是否可以在 NodeJS 中设置自定义系统蜂鸣声频率和持续时间?

我认为 windows 通过 rundll32 工具和 beep

更容易做到
const cp = require('child_process');

function beep(frequency, duration) {
  cp.execSync(`rundll32.exe Kernel32.dll,Beep ${frequency},${duration}`);
}

beep(750,300);

我最终为此和 C++ Beep(frequency, duration) 函数使用了 C++ 插件。 我从这个存储库中获取了示例:https://github.com/nodejs/node-addon-examples(第二个示例,nan), 修改它以传递我的参数(频率和持续时间),然后使用该存储库中的说明编译 addon.cc 文件。

所以在 nodeJS 中我可以将其传递给插件:

addon.add(frequency,duration);

在 C++ 中

double arg0 = info[0]->NumberValue(context).FromJust();
double arg1 = info[1]->NumberValue(context).FromJust();
Beep(arg0,arg1);

你也可以

powershell.exe [console]::beep(500,600)

所以在 node.js 中它看起来像这样

require("child_process").exec("powershell.exe [console]::beep(500,600)");