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

Discord.js v13音乐机器人加入语音频道卡在Signalling状态无报错如何解决

问题修复方案

  • 修正硬编码的 guildId 问题
    你当前代码中joinVoiceChannel配置里将guildId写死为固定值828953538952298517,如果测试的服务器ID和该值不匹配,会直接导致信令交互卡住无法完成连接。替换为动态获取当前服务器ID即可:
guildId: message.guild.id,
  • 修复音频资源初始化错误
    你当前调用createAudioResource时传入了空字符串,无效的音频资源会导致播放器初始化失败,间接阻塞语音连接的状态流转。替换为可用的本地音频路径/公共音频流地址做测试:
const resource = createAudioResource('./test.mp3') // 替换为实际存在的音频文件路径
  • 添加连接状态监听排查错误
    当前代码没有监听语音连接的事件,无法捕获底层报错信息,添加如下代码输出完整状态变化和错误:
// 加入频道后立即添加
connection.on('stateChange', (oldState, newState) => {
  console.log(`连接状态更新:${oldState.status} -> ${newState.status}`)
})
connection.on('error', err => {
  console.error('语音连接错误:', err)
})
  • 检查权限与依赖配置
  1. 前往Discord开发者后台的机器人设置页,在「Privileged Gateway Intents」板块开启GUILD_VOICE_STATES权限,仅代码中声明Intent不会生效
  2. 确认机器人在目标语音频道拥有连接、说话两项权限
  3. 安装语音加密依赖:执行npm install libsodium-wrappers,缺少该依赖会导致语音连接无法完成握手

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:48:04