You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js+Heroku部署机器人播放MP3报错:找不到Opus引擎

解决Heroku上discord.js机器人播放音乐报错"Couldn't find an Opus engine"

这个问题我之前帮朋友排查过,其实就是你的机器人缺少了语音编码和音频处理的必要依赖——Heroku默认环境里没带这些,得咱们手动补上。下面是一步步的解决办法:

  • 先装Opus编码库
    discord.js处理语音流必须依赖Opus引擎,你得在本地项目根目录运行这条命令,安装官方推荐的高性能版本:

    npm install @discordjs/opus
    

    装完之后,你的package.json里会自动加上这个依赖,推送到Heroku的时候它会自动跟着安装。

  • 给Heroku加FFmpeg的Buildpack
    要播放你本地的MP3文件,还得靠FFmpeg来解码音频。Heroku本身没有这个工具,所以得添加对应的buildpack:

    1. 打开你的Heroku项目控制台,进入「Settings」页面
    2. 在「Buildpacks」那块点「Add buildpack」
    3. 输入https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git然后保存就行
  • 代码小优化(可选但推荐)
    另外提一句,你现在用的playFile是discord.js v11的写法,如果你的机器人用的是v12及以上版本,换成connection.play()会更稳妥,比如:

    const dispatcher = connection.play('./BRODYQUEST.mp3');
    

    这个不是报错的直接原因,但更新写法能避免后续版本兼容的坑。

把这些都弄完,再把代码和更新后的package.json推送到Heroku,重启一下机器人,再发!play命令应该就能正常播放音乐啦。

内容的提问来源于stack exchange,提问作者ejer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:26:44