我在discord js中写了一个discord bot。我有一个命令可以在语音通道中播放mp3文件。
const connection = await channel.join();
const dispatcher = connection.playStream(fs.createReadStream('/absolute/path/to/file.mp3'), { type: 'ogg/opus', volume: true });
如果我在Windows PC上运行该机器人,则一切正常。机器人加入频道,播放文件然后再次离开。但是,如果我在Ubuntu 18.04 VM上运行该机器人,则该机器人会加入并立即断开连接,而不会播放文件。
mp3文件的路径是绝对路径。我已经尝试过使用connection.playFile(path)来解决相同的问题。我尝试使用opusscript,并且尝试使用node-opus。我已经通过apt安装了ffmpeg。 Node和npm在最新版本上运行。我也尝试使用discord.js的master分支仍然没有运气。我尝试删除所有内容并再次重新安装,但仍然无法正常工作。
答案 0 :(得分:0)
从discord.js v12开始,您现在只能使用.play()
方法
因此,您的解决方案应该是:
channel.join()
.then(connection => {
const stream = connection.play('/path/to/file.mp3');
stream.on("finish", () => {
channel.leave();
});
});