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

FFmpeg Discord.js音乐机器人随机停播自动切歌问题求助

故障修复方案

核心问题原因

你定义的ffmpeg_options重连配置未实际传入音频资源创建逻辑,YouTube音频流触发TLS连接中断后无重连机制,播放器直接进入idle状态触发自动切歌逻辑。

具体修改步骤

  1. 优化ytdl流参数,降低断连概率
    修改video_player函数中的ytdl调用代码:
const stream = ytdl(song.url, {
    filter: 'audioonly',
    highWaterMark: 1 << 25, // 配置32MB缓存,减少长音频断连概率
    requestOptions: {
        headers: {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
        }
    }
});
  1. 传入ffmpeg重连配置
    修改createAudioResource调用,传入已定义的重连参数:
const resource = createAudioResource(stream, ffmpeg_options);
  1. 新增播放器错误捕获逻辑
    在给player绑定idle事件的位置新增错误监听,报错后自动重试当前歌曲,避免直接切歌:
player.on('error', error => {
    console.error('播放器异常,重试当前歌曲:', error.message);
    video_player(guild, song_queue.songs[0]);
});
  1. 可选优化:避免重复创建player实例
    删除video_player函数中重复创建player的逻辑,全局仅初始化一次播放器实例即可,避免多实例冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:06:02