我需要从youtube下载音乐,然后从文件中播放音乐。
bot.play = (guild, music) => {
let queue = bot.queue.get(guild.id);
let votes = bot.votes.get(guild.id)
if (!music) {
queue.voiceChannel.leave();
bot.queue.delete(guild.id);
bot.votes.delete(guild.id);
return queue.textChannel.send(` finish`);
}
let music1 = ytdl(music.url);
music1.pipe(fs.createWriteStream('video.mp3'))
let dispatcher= queue.connection.playStream(fs.createReadStream('video.mp3'))
.on('end', () => {
queue.musics.shift();
votes.votes = 0;
votes.voters = [];
setTimeout(() => {
bot.play(guild, queue.musics[0]);
}, 250);
})
.on('progress', (d, total, length) => {
console.log('progress', total / length);
})
.on('error', err => console.error(err));
dispatcher.setVolumeLogarithmic(queue.volume / 100);
queue.textChannel.send(` **${music.title}** now playing`);
}
当它开始下载音乐以同时进行流处理以获取更高的质量时,而不是从URL中进行流处理。