当我的不和谐机器人试图在语音通道中播放MP3文件时,我遇到错误。
我的代码:
if(message.member.voiceChannel){
const connection = await message.member.voiceChannel.join();
const dispatcher = connection.playFile('./resources/shamebell.mp3');
dispatcher.on('finish', () => {
console.log('Finished playing!');
});
dispatcher.destroy(); // end the stream
}
机器人在尝试播放MP3文件时遇到错误。它加入了用户可以正常使用的语音通道。该机器人应加入VC,播放MP3文件,然后离开。
调度程序中的错误:
TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string
我尝试使用绝对路径以及相对于MP3的相对路径。已安装FFMPEG,并设置了Windows PATH以及已安装NPM的“ ffmpeg-binaries”:“ ^ 3.2.2-3”。
从connection.playFile('./resources/shamebell.mp3');
切换到connection.play('./resources/shamebell.mp3');
会在第14:43行给出错误connection.play is not a function
在解决此问题方面的任何帮助将不胜感激:)
已安装Discordv12的新代码:
const connection = await message.member.voice.channel.join();
const dispatcher = connection.play('resources/shamebell.mp3');
dispatcher.on('finish', () => {
console.log('Finished playing!');
});
dispatcher.destroy();
同一问题:
TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string
MP3文件的路径: C:\ Users \ Test \ Desktop \ bot \ BotTest \ resources \ shamebell.mp3
答案 0 :(得分:2)
我在VSC中使用了调试器,事实证明ffmpeg-static是问题所在。该错误已被屏蔽。
Error: Cannot find module 'ffmpeg-static'
通过npm安装ffmpeg-static解决了该问题。
现在可以播放MP3
答案 1 :(得分:1)
要使用.play()
,您需要安装discord.js v12
,这建议为语音资料安装npm i discordjs/discord.js
,这样做会为您提供最新的版本。
警告
discord.js
master / v12发生了重大变化,但语音重写功能完整,并修复了许多错误。