【问题标题】:Discord Music bot throws this error randomly with apparently no provokationDiscord Music 机器人随机抛出此错误,显然没有挑衅
【发布时间】:2020-08-06 12:32:12
【问题描述】:

我使用 NodeJS 和 discord.js npm 包在 Discord 上编写了一个音乐机器人,该包使用 FFMPEG 和 opusscript。我在 Heroku 上运行我的机器人,并且这个错误非常频繁地发生(它太大而无法放入这个问题中,所以我不得不将它作为 Github Gist 上传):

https://gist.github.com/PrittSpadeLord/f573d9080e6b65382bab8ba875587c6e

我无法确定导致此错误的原因,据我所知,它似乎完全是随机的。有时它会在我重新启动机器人后立即发生,有时甚至可能需要 10 分钟才能发生此错误。

我已尝试研究此错误,但由于它没有向我提供关于发生了什么的明确信息,因此我无法获得有关导致此错误的原因的任何合理信息。一些消息来源似乎暗示问题出在opusscript

相关信息:

这是我的package.json

{
  "name": "myappname",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "discord.js": "^11.5.1",
    "express": "^4.17.1",
    "gm": "^1.23.1",
    "google-it": "^1.5.0",
    "mongodb": "^3.3.2",
    "node-command-line": "^1.0.2",
    "node-random-name": "^1.0.1",
    "opusscript": "0.0.7",
    "ytdl-core": "^2.1.0"
  }
}

如果我能获得有关如何修复此错误的指导,我将不胜感激。

【问题讨论】:

    标签: node.js discord.js opus


    【解决方案1】:

    discord.js 不推荐opusscript。相反,您应该使用@discordjs/opus

    还有ytdl-core有问题,你应该切换ytdl-core-discord

    您仍然会遇到ytdl-core-discord 的问题,例如Error: Too many redirects,但这超出了我们的控制范围。这就是 ytdl-core 本身如何获取 YouTube 流的编码方式。

    【讨论】:

    • 感谢您的回复。但是,我无法同时让 @discordjs/opusnode-opus 在我的应用程序上工作。对于他们两个,node-gyp 要么在本地应用程序内部失败,要么在我尝试部署时被 Heroku 拒绝。所以我有点坚持opusscript
    • 如果您尝试运行 npm install 在 Heroku 上安装软件包,您将无法这样做。相反,请在本地执行它们,以便它们在您的package.json 中列出。 Heroku 通过您的 package.json 文件读取所有依赖项。还可以查看这些可能有帮助的 Heroku 构建包:FFmpegOpusLibOpus
    • 我总是使用npm install package-name --save 安装新包,以确保它们列在package.json 中。但是,感谢这些链接,我已经添加了 FFMPEG buildpack,但第二个链接对我来说是新的。
    猜你喜欢
    • 2022-11-27
    • 2022-01-25
    • 2020-11-08
    • 2020-04-14
    • 2019-01-12
    • 1970-01-01
    • 2021-08-14
    • 2021-08-19
    • 2020-05-13
    相关资源
    最近更新 更多