Javascript 如何使用ytdl core通过Discord.js bot发送下载的.mp3?
以下是它当前的样子:Javascript 如何使用ytdl core通过Discord.js bot发送下载的.mp3?,javascript,Javascript,以下是它当前的样子: const Discord = require("discord.js") const client = new Discord.Client() const fs = require("fs") const ytdl = require("ytdl-core") const config = require("./config.json") fs.readdir("./events/", (err, files) => { if (err) return c
const Discord = require("discord.js")
const client = new Discord.Client()
const fs = require("fs")
const ytdl = require("ytdl-core")
const config = require("./config.json")
fs.readdir("./events/", (err, files) => {
if (err) return console.error(err)
files.forEach(file => {
let eventFunction = require(`./events/${file}`)
let eventName = file.split(".")[0]
client.on(eventName, (...args) => eventFunction.run(client, ...args))
})
})
client.on("message", message => {
if (message.author.bot) return
if(message.content.indexOf(config.prefix) !== 0) return
const args = message.content.slice(config.prefix.length).trim().split(/ +/g)
const command = args.shift().toLowerCase()
try {
let commandFile = require(`./commands/${command}.js`)
commandFile.run(client, message, args)
} catch (err) {
console.error(err)
}
if(command === "test"){
let url = args[0]
ytdl(url, {filter:'audioonly', format:'mp3'}).pipe(fs.createWriteStream("audio.mp3"))
message.channel.sendFile("./audio.mp3")
}
});
client.login(config.token)
命令存储在不同的文件中,但我在
如果(命令==“测试”)
用于测试命令
非常感谢您的帮助,谢谢您使用的是异步的
流。要使其正常工作,您需要检查文件的写入过程是否完成
ytdl(url, {filter: 'audioonly', format: 'mp3'})
.pipe(fs.createWriteStream('audio.mp3'))
// End of writing
.on('end', () => {
message.sendFile('./audio.mp3');
});