Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 音乐机器人可以加入,但不能播放文件_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 音乐机器人可以加入,但不能播放文件

Javascript 音乐机器人可以加入,但不能播放文件,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我正在编写一个discord机器人,我想包括一个音乐播放器,现在我正在尝试播放同一文件夹中的文件 正在从我的主文件调用该函数。 我已经试过多种方法,但都不管用, 玩家const稍后将用于暂停恢复等等 (暂时忽略link变量,它稍后将用于承载youtube链接) 预期: 机器人应该加入并开始播放我的Pascal.mp3文件 实际: 机器人连接到vc,然后崩溃 const player = jchannel.play('./Pascal.mp3') ^

我正在编写一个discord机器人,我想包括一个音乐播放器,现在我正在尝试播放同一文件夹中的文件

正在从我的主文件调用该函数。 我已经试过多种方法,但都不管用, 玩家const稍后将用于暂停恢复等等

(暂时忽略link变量,它稍后将用于承载youtube链接)

预期: 机器人应该加入并开始播放我的Pascal.mp3文件

实际: 机器人连接到vc,然后崩溃

const player = jchannel.play('./Pascal.mp3')
                        ^
TypeError: jchannel.play is not a function
显然,play()不是jchannel对象的方法

module.exports = {
streamyt: function (message, link) {
    if (message.member.voiceChannel ) {
        const jchannel = message.member.voiceChannel
        jchannel.join().then(function (connection) {
            connection.playFile('./Pascal.mp3') 
    }
    else {
        message.reply('I cant do that,you need to be in an vc first')
    }
}

根据:“通过连接播放音频的最基本示例是播放本地文件:
const dispatcher=connection.play('/home/discord/audio.mp3');
本例中的调度器是StreamDispatcher-在这里,您可以控制流的音量和播放:…”,因此,根据他们的说法,它应该是这样工作的
connection.play()
jchannel.play()
之间有区别。在回答中给出的代码中,所做的是:尝试加入语音频道,获取VoiceConnection对象,然后在此连接上使用
play
方法。这与您的代码所做的有很大区别,因为您不使用由
join()
方法返回的语音连接。由于该注释和新文档(我使用的是旧文档[傻瓜我]),play不再工作了。play文件(file)
module.exports = {
streamyt: function (message, link) {
    if (message.member.voiceChannel ) {
        const jchannel = message.member.voiceChannel
        jchannel.join().then(function (connection) {
            connection.playFile('./Pascal.mp3') 
    }
    else {
        message.reply('I cant do that,you need to be in an vc first')
    }
}