“类型错误 [ERR_INVALID_ARG_TYPE]”- MP3 和 VC
Posted
技术标签:
【中文标题】“类型错误 [ERR_INVALID_ARG_TYPE]”- MP3 和 VC【英文标题】:"TypeError [ERR_INVALID_ARG_TYPE]" - MP3 & VC 【发布时间】:2019-08-18 08:07:58 【问题描述】:我的 discord 机器人尝试在语音频道中播放 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
【问题讨论】:
【参考方案1】:我在 VSC 中使用了调试器,结果发现 ffmpeg-static 是问题所在。错误已被屏蔽。
Error: Cannot find module 'ffmpeg-static'
通过 npm 安装 ffmpeg-static 解决了这个问题。
现在可以播放 MP3
【讨论】:
【参考方案2】:要使用.play()
,您需要安装discord.js v12
,建议通过npm i discordjs/discord.js
安装Voice Stuff,这将为您提供最新版本。
警告
discord.js
master/v12 有重大更改,但进行了完整的语音重写和许多错误修复。
【讨论】:
已安装 npm i discordjs/discord.js 并将 playFile 更改为connection.play('./resources/shamebell.mp3');
但现在没有任何反应。机器人甚至没有加入 VC
我从 if 中删除了所有内容,它现在加入了频道,但说了同样的话 TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string
以上是关于“类型错误 [ERR_INVALID_ARG_TYPE]”- MP3 和 VC的主要内容,如果未能解决你的问题,请参考以下文章