Discord.js v13.1机器人播放MP3文件无声音问题求助
Discord.js v13 播放MP3无声音问题解决方案
播放器运行日志显示资源加载、状态切换完全正常,无报错,问题出在音频解码输出环节或权限配置,可按以下步骤排查:
检查语音依赖是否完整
必须安装所有语音相关依赖才能正常输出音频:- Opus解码库二选一安装即可:
npm install @discordjs/opus
或npm install opusscript - FFmpeg二选一配置即可:
系统全局安装FFmpeg并添加到环境变量,或安装npm静态包:npm install ffmpeg-static
- Opus解码库二选一安装即可:
显式指定音频资源的输入类型
@discordjs/voice 对本地MP3文件的自动格式识别容易出错,需显式指定输入格式:
首先从@discordjs/voice包中引入StreamType,然后修改资源创建代码:const resource = createAudioResource(join(__dirname, '../../songs/song.mp3'), { inputType: StreamType.MP3 })检查权限与客户端配置
- 确认机器人在加入的语音频道中拥有「说话」权限
- 检查Discord客户端是否将机器人静音,或机器人的用户音量被调整到0
- 确认未连接到语音频道的AFK分区,AFK分区默认限制普通用户发声
调整执行顺序
部分场景下先完成播放器订阅再触发播放可避免初始化异常,修改代码顺序:voiceConn.subscribe(player) player.play(resource)测试音频文件兼容性
若使用特殊编码的MP3文件(如过高比特率的VBR资源、加密MP3)会出现解码无输出问题,可替换为标准128kbps CBR编码的MP3文件测试。
内容的提问来源于stack exchange,提问作者Ray Kochenderfer
相关产品推荐
相关产品推荐

