Discord.js 机器人试图在语音通道上播放 mp3 文件 - 没有错误,也没有声音
Discord.js bot trying to play mp3 file on voice channel - no error and also no sound
我的机器人加入语音频道,然后离开并发送消息“播放正常!”,但不播放 mp3。我在 Windows 并且我已经检查过我可以通过命令行使用 ffmpeg 播放 mp3 文件。有人知道怎么回事吗?
const path = require('path')
client.channels.fetch('Channel_ID').then(channel => {
console.log(channel.name)
console.log(path.join(__dirname, 'music.mp3'))
channel.join().then((connection) => {
const dispatcher = connection.play(path.join(__dirname, 'music.mp3'));
dispatcher.on("speaking", speaking => {
if (!speaking) {
channel.leave()
msg.channel.send("Playing ok!")
}
});
});
});
更新:
我为 'finish' 事件更改了 'speaking',并且还尝试了评论中的音频文件。现在,bot加入语音频道,在mp3时长停留时间不变,然后离开语音频道,但还没有声音。
更新二:
我现在将 ffmpeg 添加到我的 PATH 中。机器人显示一个绿色圆圈,好像在播放什么,但又没有声音。为了以防万一,我将我的机器人置于管理员权限之下,但这还不够。
感谢您的帮助。
使用 discord.js v12.5.3
.
要使 discord.js 语音正常工作,您需要安装以下软件包(如 docs under the installation section): either @discordjs/opus
or opusscript
.
中所述
npm install @discordjs/opus
另外 discord.js 取决于 prism-media
并且您应该安装 ffmpeg 才能正常工作。
npm install ffmpeg-static
如果您不想将 ffmpeg 安装为 npm 包并且您已经安装了 ffmpeg,请确保将其添加到 PATH
环境变量并重新启动您的工作环境。
OP 说,在将 ffmpeg 添加到 PATH
后重新启动他的计算机。
来自评论的其余信息:
Also your message "Playing ok!" is wrong, it means that the bot is not speaking... See above you have if (!speaking) { ... }
. So when you get this message after the bot joined the voice channel, something is wrong, because the StreamDispatcher
ended right away.
To debug this, take a look at the error
event of StreamDispatcher
.
我的机器人加入语音频道,然后离开并发送消息“播放正常!”,但不播放 mp3。我在 Windows 并且我已经检查过我可以通过命令行使用 ffmpeg 播放 mp3 文件。有人知道怎么回事吗?
const path = require('path')
client.channels.fetch('Channel_ID').then(channel => {
console.log(channel.name)
console.log(path.join(__dirname, 'music.mp3'))
channel.join().then((connection) => {
const dispatcher = connection.play(path.join(__dirname, 'music.mp3'));
dispatcher.on("speaking", speaking => {
if (!speaking) {
channel.leave()
msg.channel.send("Playing ok!")
}
});
});
});
更新: 我为 'finish' 事件更改了 'speaking',并且还尝试了评论中的音频文件。现在,bot加入语音频道,在mp3时长停留时间不变,然后离开语音频道,但还没有声音。
更新二: 我现在将 ffmpeg 添加到我的 PATH 中。机器人显示一个绿色圆圈,好像在播放什么,但又没有声音。为了以防万一,我将我的机器人置于管理员权限之下,但这还不够。
感谢您的帮助。
使用 discord.js v12.5.3
.
要使 discord.js 语音正常工作,您需要安装以下软件包(如 docs under the installation section): either @discordjs/opus
or opusscript
.
npm install @discordjs/opus
另外 discord.js 取决于 prism-media
并且您应该安装 ffmpeg 才能正常工作。
npm install ffmpeg-static
如果您不想将 ffmpeg 安装为 npm 包并且您已经安装了 ffmpeg,请确保将其添加到 PATH
环境变量并重新启动您的工作环境。
OP 说,在将 ffmpeg 添加到 PATH
后重新启动他的计算机。
来自评论的其余信息:
Also your message "Playing ok!" is wrong, it means that the bot is not speaking... See above you have
if (!speaking) { ... }
. So when you get this message after the bot joined the voice channel, something is wrong, because theStreamDispatcher
ended right away.
To debug this, take a look at the
error
event ofStreamDispatcher
.