gpt4 book ai didi

node.js - Discord.js 音乐机器人停止播放

转载 作者:行者123 更新时间:2023-12-04 22:49:54 27 4
gpt4 key购买 nike

我的 discord.js 音乐机器人随机停止播放音乐。
这是错误报告:
在 B 实例上发出“错误”事件:
在 OggDemuxer.t (/Users/myName/Bot/node_modules/@discordjs/voice/dist/index.js:8:288)
它说错误类型是“ECONNRESET”(代码:'ECONNRESET')
在此错误之后,机器人很快就会脱机并且代码停止运行(所有命令都不起作用)
我用来播放音乐的代码如下:

const { Client, Intents, MessageEmbed } = require('discord.js');
const { token } = require('./config.json');
const { joinVoiceChannel, createAudioPlayer, createAudioResource } = require('@discordjs/voice');
const ytdl = require('ytdl-core')
const ytSearch = require('yt-search')
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_VOICE_STATES] });
client.once('ready', () => {
console.log('Ready!');
});
const videoFinder = async (search) => {
const videoResult = await ytSearch(search)
return (videoResult.videos.length > 1) ? videoResult.videos[0] : null;
}
client.on('messageCreate', msg => {
if(msg.content === '!join') {
connection = joinVoiceChannel({
channelId: msg.member.voice.channel.id,
guildId: msg.guild.id,
adapterCreator: msg.guild.voiceAdapterCreator
})
if (msg.content.substring(0, 6) === '!play ') {
let searchContent = msg.content.substring(6)
async function playChosen() {
let ourVideo = await videoFinder(searchContent)
const stream = ytdl(ourVideo.url, { filter: 'audioonly' })
const player = createAudioPlayer()
let resource = createAudioResource(stream)
player.play(resource)
connection.subscribe(player)
}
playChosen()
}
}

client.on('error', error => {
console.error('The WebSocket encountered an error:', error);
});

client.login(token);
我知道代码有点乱,但如果有人能提供帮助,我将不胜感激!另外,我使用 discord.js v13,机器人通常会在出现此错误之前播放部分歌曲。

最佳答案

再一次,我发布了一个问题,我很快就找到了答案,哈哈。这里的问题是由 ytdl-core 引起的,它会由于某种原因随机关闭。 Play-dl 可以更好地解决这个问题。这是我获得此信息的地方的链接:
Discord.js/voice How to create an AudioResource?
播放-dl链接:
https://www.npmjs.com/package/play-dl
例子:
https://github.com/play-dl/play-dl/blob/5a780517efca39c2ffb36790ac280abfe281a9e6/examples/YouTube/play%20-%20search.js
对于这个例子,我建议仍然使用 yt-search 来获取 url,因为我使用他们的搜索方法得到了一些不稳定的结果。谢谢!

关于node.js - Discord.js 音乐机器人停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71382823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com