Discord.js音乐bot类型错误[ERR_INVALID_ARG_TYPE]:“ file”参数必须为字符串类型。收到的类型对象

问题描述 投票:0回答:1

我是Discord.js的新手,我正在尝试让该漫游器加入语音通道并在计算机上播放音频文件。我一直在遵循本指南:https://discord.js.org/#/docs/main/stable/topics/voice。这是Index.js页面:

const Discord = require('discord.js');
const Colesbot = new Discord.Client();

const token = '***********************************************';



Colesbot.on('ready', () =>{
    console.log('Slamsbot is online.');
})

Colesbot.on('message', msg=>{
   if(msg.content == "What up bot?"){
       msg.reply("Whats good pimp?")
   }
});

Colesbot.on('message', message=>{
    if (message.content === '/join') {
        // Only try to join the sender's voice channel if they are in one themselves
        if (message.member.voiceChannel) {
            message.member.voiceChannel.join().then(connection => {
                message.reply('I have successfully connected to the channel!');

                // To play a file, we need to give an absolute path to it
                const dispatcher = connection.playFile('C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\Assets\Glory.mp3');

                dispatcher.on('end', () => {
                    // The song has finished
                    console.log('Finished playing!');
                  });

                dispatcher.on('error', e => {
                    // Catch any errors that may arise
                    console.log(e);
                  });

                  dispatcher.setVolume(0.5); // Set the volume to 50%
            }).catch(console.log);
    } else {
        message.reply('You need to join a voice channel first!');
      }
    }
 });



//Event listener for new guild members
Colesbot.on('guildMemberAdd', member =>{
    // Send the message to a designated channel on a server:
    const channel = member.guild.channels.find(ch => ch.name === 'general');
    // Do nothing if the channel wasn't found on this server
    if (!channel) return;
    // Send the message, mentioning the member
    channel.send(`Welcome to the server, ${member}. Please use the bot-commands channel to assign yourself a role.`);
})

Colesbot.login(token);



exports.run = (client, message, args) => {

    let user = message.mentions.users.first || message.author;


}

FFMPEG已安装,我已经为其设置了环境路径。当我在命令行中键入FFMPEG时,我会得到正确的响应。

有些人说我需要安装ffmpeg二进制文件,但是当我运行npm安装ffmpeg-binaries时,出现此错误消息:

npm WARN deprecated [email protected]: ffmpeg-binaries is no longer being maintained. use ffmpeg-static, or just install ffmpeg

> [email protected] install C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native
> node-pre-gyp install --fallback-to-build && node node_modules/rimraf/bin.js build

node-pre-gyp ERR! Tried to download(404): https://node-pre-gyp.addaleax.net/lzma-native/lzma_native-v3.0.8-node-v72-win32-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp ERR! Tried to download(undefined): https://node-pre-gyp.addaleax.net/lzma-native/lzma_native-v3.0.8-node-v72-win32-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp)
gyp ERR! find Python
gyp ERR! find Python Python is not set from command line or npm configuration
gyp ERR! find Python Python is not set from environment variable PYTHON
gyp ERR! find Python checking if "python" can be used
gyp ERR! find Python - "python" is not in PATH or produced an error
gyp ERR! find Python checking if "python2" can be used
gyp ERR! find Python - "python2" is not in PATH or produced an error
gyp ERR! find Python checking if "python3" can be used
gyp ERR! find Python - "python3" is not in PATH or produced an error
gyp ERR! find Python checking if the py launcher can be used to find Python 2
gyp ERR! find Python - "py.exe" is not in PATH or produced an error
gyp ERR! find Python checking if Python is C:\Python27\python.exe
gyp ERR! find Python - "C:\Python27\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Python37\python.exe
gyp ERR! find Python - "C:\Python37\python.exe" could not be run
gypgyp ERR!  find PythonERR!
find Pythongyp
 gyp ERR!ERR!  find Pythonfind Python Python is not set from command line or npm configuration
 **********************************************************
gypgyp  ERR!ERR!  find Pythonfind Python Python is not set from environment variable PYTHON
 You need to install the latest version of Python.
gypgyp  ERR!ERR!  find Pythonfind Python checking if "python" can be used
 Node-gyp should be able to find and use Python. If not,
gypgyp  ERR!ERR!  find Pythonfind Python - "python" is not in PATH or produced an error
 you can try one of the following options:
gypgyp  ERR!ERR!  find Pythonfind Python checking if "python2" can be used
 - Use the switch --python="C:\Path\To\python.exe"
gypgyp ERR!  ERR!find Python  - "python2" is not in PATH or produced an error
find Pythongyp   (accepted by both node-gyp and npm)
 gypERR!  ERR!find Python  checking if "python3" can be used
find Pythongyp - Set the environment variable PYTHON
 gypERR!  ERR!find Python  - "python3" is not in PATH or produced an error
find Pythongyp - Set the npm configuration variable python:
 gypERR!  ERR!find Python  checking if the py launcher can be used to find Python 2
find Pythongyp   npm config set python "C:\Path\To\python.exe"
 gypERR!  ERR!find Python  - "py.exe" is not in PATH or produced an error
find Pythongyp For more information consult the documentation at:
 gypERR!  ERR!find Python  checking if Python is C:\Python27\python.exe
gypfind Python  https://github.com/nodejs/node-gyp#installation
ERR!gyp  find PythonERR! - "C:\Python27\python.exe" could not be run
 gypfind Python  **********************************************************
ERR!gyp  find PythonERR! checking if Python is C:\Python37\python.exe
 gypfind Python
ERR! find Python - "C:\Python37\python.exe" could not be run
gypgyp  ERR!ERR!  configure errorfind Python

gypgyp  ERR!ERR!  stackfind Python Error: Could not find any Python installation to use
 **********************************************************
gyp gypERR!  ERR!stack      at PythonFinder.fail (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:307:47)
find Pythongyp  You need to install the latest version of Python.
ERR!gyp stack      at PythonFinder.runChecks (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:136:21)
ERR!gyp  ERR!find Python  Node-gyp should be able to find and use Python. If not,
stack     at PythonFinder.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:225:16)
gypgyp  ERR!ERR!  find Pythonstack you can try one of the following options:
     at PythonFinder.execFileCallback (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:271:16)
gypgyp  ERR!ERR!  stackfind Python     at exithandler (child_process.js:302:5)
gyp - Use the switch --python="C:\Path\To\python.exe"
 gypERR!  stackERR!     at ChildProcess.errorhandler (child_process.js:314:5)
 gyp find PythonERR!    (accepted by both node-gyp and npm)
stack     at ChildProcess.emit (events.js:223:5)
gypgyp  ERR!ERR!  stackfind Python     at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
 - Set the environment variable PYTHON
gypgyp  ERR!ERR! stack      at onErrorNT (internal/child_process.js:456:16)
find Pythongyp - Set the npm configuration variable python:
 gypERR!  ERR!stack      at processTicksAndRejections (internal/process/task_queues.js:81:21)
find Python   npm config set python "C:\Path\To\python.exe"
gypgyp  ERR!ERR!  find PythonSystem For more information consult the documentation at:
 Windows_NT 10.0.17763
gypgyp  ERR!ERR!  find Pythoncommand https://github.com/nodejs/node-gyp#installation
 "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\\Users\\bobal\\Documents\\GitHub\\Spotify-Playlist-Discord-bot\\node_modules\\lzma-native\\binding-v3.0.8-node-v72-win32-x64\\lzma_native.node" "--module_name=lzma_native" "--module_path=C:\\Users\\bobal\\Documents\\GitHub\\Spotify-Playlist-Discord-bot\\node_modules\\lzma-native\\binding-v3.0.8-node-v72-win32-x64"
gypgyp  ERR!ERR!  find Pythoncwd **********************************************************
 C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native
gypgyp  ERR!ERR!  find Pythonnode -v
 v12.14.1
gyp ERR! node-gyp -vgyp v5.0.5
 gyp ERR!ERR!  configure errornot ok

gyp ERR! stack Error: Could not find any Python installation to use
gyp ERR! stack     at PythonFinder.fail (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:307:47)
gyp ERR! stack     at PythonFinder.runChecks (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:136:21)
gyp ERR! stack     at PythonFinder.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:225:16)
gyp ERR! stack     at PythonFinder.execFileCallback (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:271:16)
gyp ERR! stack     at exithandler (child_process.js:302:5)
gyp ERR! stacknode-pre-gyp     at ChildProcess.errorhandler (child_process.js:314:5)
 gypERR!  ERR!build error
stack     at ChildProcess.emit (events.js:223:5)
node-pre-gypgyp  ERR!ERR!  stackstack     at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
 Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native\binding-v3.0.8-node-v72-win32-x64\lzma_native.node --module_name=lzma_native --module_path=C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native\binding-v3.0.8-node-v72-win32-x64' (1)
node-pre-gypgyp  ERR! ERR!stack      at ChildProcess.<anonymous> (C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native\node_modules\node-pre-gyp\lib\util\compile.js:83:29)
stacknode-pre-gyp     at onErrorNT (internal/child_process.js:456:16)
 gypERR!  ERR!stack      at ChildProcess.emit (events.js:223:5)
stacknode-pre-gyp     at processTicksAndRejections (internal/process/task_queues.js:81:21)
 ERR! stackgyp     at maybeClose (internal/child_process.js:1021:16)
 node-pre-gypERR!  ERR!System stack Windows_NT 10.0.17763
     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
gyp ERR! node-pre-gypcommand  "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\\Users\\bobal\\Documents\\GitHub\\Spotify-Playlist-Discord-bot\\node_modules\\lzma-native\\binding-v3.0.8-node-v72-win32-x64\\lzma_native.node" "--module_name=lzma_native" "--module_path=C:\\Users\\bobal\\Documents\\GitHub\\Spotify-Playlist-Discord-bot\\node_modules\\lzma-native\\binding-v3.0.8-node-v72-win32-x64"
ERR!gyp  SystemERR! Windows_NT 10.0.17763
 node-pre-gypcwd  C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native
ERR!gyp  commandERR! "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\bobal\\Documents\\GitHub\\Spotify-Playlist-Discord-bot\\node_modules\\lzma-native\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
 node-pre-gypnode -v  v12.14.1
ERR!gyp  cwdERR! C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native
 node-pre-gypnode-gyp -v  v5.0.5
ERR!gyp  ERR!node -v  v12.14.1
not ok
node-pre-gyp ERR! node-pre-gyp -v v0.6.39
node-pre-gyp ERR! not ok
Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native\binding-v3.0.8-node-v72-win32-x64\lzma_native.node --module_name=lzma_native --module_path=C:\Users\bobal\Documents\GitHub\Spotify-Playlist-Discord-bot\node_modules\lzma-native\binding-v3.0.8-node-v72-win32-x64' (1)
npm WARN [email protected] requires a peer of @discordjs/uws@^10.149.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] No description
npm WARN [email protected] No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build && node node_modules/rimraf/bin.js build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\bobal\AppData\Roaming\npm-cache\_logs\2020-02-21T19_25_47_323Z-debug.log

因此,我尝试安装旧版本,现在使用[email protected],但是当我键入/ join时,我得到了:[ERR_INVALID_ARG_TYPE]:“文件”参数必须为字符串类型。收到的类型对象

node.js ffmpeg discord.js dispatcher
1个回答
1
投票

首先,您需要重置令牌,永远不要在线发布令牌,因为其他人可以使用它来访问和控制您的机器人

here is a good answer您的问题

我认为您需要安装FFMPEG并为其设置环境路径,但是,您可以提供更多信息,控制台日志,行为等吗?>

© www.soinside.com 2019 - 2024. All rights reserved.