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