“ TypeError [ERR_INVALID_ARG_TYPE]”-MP3和VC

时间:2019-03-27 16:53:03

标签: node.js ffmpeg mp3 typeerror discord.js

当我的不和谐机器人试图在语音通道中播放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

2 个答案:

答案 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发生了重大变化,但语音重写功能完整,并修复了许多错误。