javascript - 如何在 js 文件 (discord.js) 中执行终端命令
问题描述
我的不和谐机器人目前有一个本地录音功能,每次有人说话时都会创建一个文件。当机器人与语音通话(从!stoprecording)断开连接时,我需要node merge.js
在终端中手动运行以将所有这些文件合并到 1 个主 PCM 文件中。从那里,我需要运行另一个 FFMPEG 终端命令将合并的 PCM 文件转换为 MP3。这本身就很好,但很好奇是否有任何方法可以自动化?有没有办法在实际代码本身中执行终端命令。这样每次运行 !stoprecording 时,它都会合并文件并使用 FFMPEG 转换为 mp3?
解决方案
在处理 discord.js bot 命令时,您可以使用 Node.JS 原生的东西来执行 shell 命令
const util = require('util');
const exec = util.promisify(require('child_process').exec);
async function ls() {
const { stdout, stderr } = await exec('ls');
console.log('stdout:', stdout);
console.log('stderr:', stderr);
}
// ls function is called in command exec function
ls();
推荐阅读
- java - XML 应该使用哪种 java 数据结构?
- json - 是否可以使用 nginx 合并两个 json 响应?
- r - 对来自观察数据的三个治疗组样本在 R 中执行匹配抽样
- python - 如何遍历单词列表并用单词替换某些字母
- php - 为我的 Web 应用程序寻找最佳服务器设置解决方案
- node.js - 节点 uri 正则表达式未捕获捕获组
- kubernetes - Splunk Universal Forwarder 作为 kubernetes 中的 sidecar
- python - 关于 h2o 中随机森林概率校准的问题
- cassandra - Cassandra - 获取特定时间范围内的所有数据
- statsmodels - ARIMA 模型:plot_diagnostics 共享错误