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

Discord.js DisTube播放异常:30秒后无声但队列显示仍播放

Problem

使用Discord.js结合DisTube开发的音乐机器人,通过斜杠指令播放音乐视频时,播放约30秒后完全无声,但队列显示仍在播放,终端无任何错误日志。

相关代码

index.js

const distube = require("distube")
const Distube = new distube.DisTube(Client, {
    emitNewSongOnly: true,
    leaveOnStop:false,
    leaveOnFinish: false,
    updateYouTubeDL: true,
    nsfw: true,
    plugins:[new SpotifyPlugin()],
    youtubeCookie:"COOKIE"
})

play.js

module.exports = {
    data:{name:"play",description:"Play music",options:[{name:"query",description:"Get song name",type:"STRING",required:true}]},
    async execute(utils,Client,i,Discord,userModel,serverModel,banModel,Distube){
        if(!i.member.voice.channel)return i.reply({content:'Please join a voice channel',ephemeral:true})
        if(!i.guild.members.me.voice.channel == i.member.voice.channel)return i.reply({content:'We are not in the same voice channel',ephemeral:true})
        const song = i.options.getString("query")
        Distube.play(i.member.voice.channel, song, {member:i.member,textChannel:i.channel})
        i.reply({content:"Starting...",ephemeral:true})
    }
}

addSong.js

const {Distube} = require("../index")
const Discord = require("discord.js")
const utils = require("../utils/utils")
Distube.on("addSong", (queue,song) => {
    queue.textChannel.send({
        embeds:[
            new Discord.MessageEmbed()
            .setAuthor({name:`Added by ${song.user.username}`,iconURL:song.user.avatarURL()})
            .setTitle(song.name)
            .setThumbnail(song.thumbnail)
            .setURL(song.url)
            .addFields([
                {
                    name: '**Likes | Views**',
                    value: `**${utils.roundNumber(song.likes)} | ${utils.roundNumber(song.views)}**`,
                    inline: true
                },
                {
                    name:"**Duration | Position**",
                    value:`**${song.formattedDuration} | ${queue.songs.length}**`,
                    inline: true
                }
            ])
            .setFooter({text:`Volume: ${queue.volume}% | Loop: ${queue.repeatMode ? queue.repeatMode == 2 ? "All Queue" : "This Song" : "Off"}`})
        ]
    })
})

环境版本

  • Discord.js: 13.15.0
  • DisTube: 3.3.4
  • Node.js: 18.14.2
解决方案

该问题可通过更新至最新版本的DisTube解决,执行以下命令完成更新:

npm install distube@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:27:53