Discord-Player 5.4.0自动暂停问题求助
Discord机器人自动触发autopause并断开语音频道的解决求助
本周早些时候我的Discord机器人运行完全正常,但不知为何突然自动触发了autopausing功能,这并非我想要的结果。我在官方文档里找不到任何关于autopausing的设置说明,希望有人能告诉我怎么关闭这个功能。
Debug事件日志
Debug: Queue initialized: -------------------------------------------------- Core Dependencies - @discordjs/voice: 0.11.0 - prism-media: 1.3.5 Opus Libraries - @discordjs/opus: 0.8.0 - opusscript: not found Encryption Libraries - sodium-native: not found - sodium: not found - libsodium-wrappers: 0.7.11 - tweetnacl: not found FFmpeg - version: 5.0.1-static https://johnvansickle.com/ffmpeg/ - libopus: yes -------------------------------------------------- -------------------------------------------------- Loaded Extractors: None Debug: Received play request Debug: state change: from {"status":"idle","resource":false,"stepTimeout":false} to {"status":"playing","missedFrames":0,"playbackDuration":0,"resource":true,"stepTimeout":false} Debug: state change: from {"status":"playing","missedFrames":0,"playbackDuration":56200,"resource":true,"stepTimeout":false} to {"status":"autopaused","missedFrames":0,"playbackDuration":56200,"resource":true,"silencePacketsRemaining":5,"stepTimeout":false} Debug: state change: from {"status":"autopaused","missedFrames":0,"playbackDuration":56300,"resource":true,"silencePacketsRemaining":0,"stepTimeout":false} to {"status":"idle","resource":false,"stepTimeout":false}
曲目正常播放约一分钟后,状态会变为'autopaused',几秒后机器人就会断开语音频道(VC),就算队列里有多首曲目也一样。
初始化Player的代码
// Initialise player client.player = new Player(client, { ytdlOptions: { quality: 'highestaudio', highWaterMark: 1 << 25 } });
初始化Queue的代码
const queue = await client.player.createQueue(interaction.guild, { metadata: {channel: interaction.channel}, // for player_event messages spotifyBridge: true, leaveOnEnd: true });
解决方法
这个autopause是@discordjs/voice库内置的自动暂停机制,当检测到语音频道内没有活跃听众(全员静音/离开)时触发,默认开启。你可以在创建Queue时添加autoPause配置项并设为false来关闭:
修改Queue初始化代码:
const queue = await client.player.createQueue(interaction.guild, { metadata: {channel: interaction.channel}, spotifyBridge: true, leaveOnEnd: true, autoPause: false // 添加此行关闭自动暂停 });
另外检查语音频道内是否有活跃成员——若全员静音或离开,即便关闭autoPause,部分机器人逻辑仍可能断开,但关闭后只要频道内有成员(哪怕静音),机器人应会继续播放队列曲目。
如果问题依旧,建议将@discordjs/voice更新至最新稳定版本,旧版本可能存在机制bug。
内容的提问来源于stack exchange,提问作者zoltan
相关产品推荐
相关产品推荐

