我的Discord机器人的一个命令是在当前用户的语音通道中播放预定义的音乐片段。机器人可以连接,但它不是播放歌曲,而是瞬间离开。我已尝试同时使用connection.playStream
和connection.playFile
,两者似乎都返回相同(缺少)输出。我错过了某种依赖,还是我的代码写得不正确?任何帮助将不胜感激!
const Discord = require('discord.js');
const ytdl = require('ytdl-core');
const client = new Discord.Client();
const streamOptions = { seek: 0, volume: 1};
client.on('ready', () => {
console.log('Login Success');
});
client.on('message', message => {
if (message.content === '$vaporwave') {
if (!message.guild) return;
if(message.member.voiceChannel) {
message.member.voiceChannel.join().then(connection => {
console.log("joined channel");
//const stream = ytdl('https://www.youtube.com/watch?v=cU8HrO7XuiE', { filter : 'audioonly' });
const dispatcher = connection.playFile('./mcp420.mp3');
//const dispatcher = connection.playStream(stream, streamOptions);
dispatcher.on("end", end => {
console.log("left channel");
message.member.voiceChannel.leave();
});
}).catch(err => console.log(err));
}
}
});
答案 0 :(得分:0)
通过使用dispatcher.on('error', console.error);
,我发现我的主机上没有安装sodium
,并且在文件播放期间导致错误。现在正常工作。