[英]How to get rid of this ffmpeg?
我目前正在开发一个机器人。 它的 function 是加入语音频道并与tts
通话。
这是我迄今为止的尝试:
try {
const broadcast = client.voice.createBroadcast();
var channelId = message.member.voice.channelID;
var channel = client.channels.cache.get(channelId);
channel.join().then(connection => {
broadcast.play(discordTTS.getVoiceStream("Staline est né le : 18 Décembre 1878."));
const dispatcher = connection.play(broadcast);
});
message.delete();
}
catch (e) {
console.log(e);
}
这是我得到的错误:
events.js: 292
throw er; // Unhandled 'error' event
^
Error: spawn ffmpeg ENOENT
at Process.ChildProcess._handle.onexit(internal / child_process.js: 269: 19)
at onErrorNT(internal / child_process.js: 465: 16)
at processTicksAndRejections(internal / process / task_queues.js: 80: 21)
Emitted 'error' event on ChildProcess instance at:
at Process.ChildProcess._handle.onexit(internal / child_process.js: 275: 12)
at onErrorNT(internal / child_process.js: 465: 16)
at processTicksAndRejections(internal / process / task_queues.js: 80: 21) {
errno: -4058,
code: 'ENOENT',
syscall: 'spawn ffmpeg',
path: 'ffmpeg',
spawnargs: [
'-i', '-',
'-analyzeduration', '0',
'-loglevel', '0',
'-f', 's16le',
'-ar', '48000',
'-ac', '2',
'pipe:1'
]
}
我真的不明白,我从来没有要求ffmpeg在这里
据我所知 /tts 是内部 Discord 的 function(不是 discord.js)。 Bot 无法加入并通过 tts 发言。 你可以做这样的事情:
client.on('message', message => {
message.channel.send(args, {
tts: true
});
});
无需加入语音频道!
更新!
我没有提到您正在使用“discord-tts”。 首先,您必须安装所有需要的依赖项: @discordjs/opus和ffmpeg-static
然后试试你的代码或这个:
if (msg.content==="say test 123") {
const broadcast = bot.voice.createBroadcast();
if (msg.member.voice.channel) {
const connection = await msg.member.voice.channel.join();
broadcast.play(discordTTS.getVoiceStream("test 123"));
const dispatcher = connection.play(broadcast);
} else {
await msg.reply('You need to join a voice channel first!');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.