"TypeError [ERR_INVALID_ARG_TYPE]" - 已售出 & VC

"TypeError [ERR_INVALID_ARG_TYPE]" - MP3 & VC

当我的 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 路径以及安装了 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

要使用 .play(),您需要安装 discord.js v12,这是推荐用于 Voice Stuff 的方法,方法是 npm i discordjs/discord.js 这将为您提供最新版本。

Warning discord.js master/v12 has breaking changes but a full voice rewrite and a lot of bug fixes.

我在 VSC 中使用了调试器,结果发现问题出在 ffmpeg-static 上。错误被屏蔽了。

Error: Cannot find module 'ffmpeg-static'

通过 npm 安装 ffmpeg-static 解决了这个问题。

现在可以播放 MP3