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
相关产品推荐
相关产品推荐

