discord.js 不播放音频文件

Posted

技术标签:

【中文标题】discord.js 不播放音频文件【英文标题】:discord.js not playing audio file 【发布时间】:2020-02-11 03:30:36 【问题描述】:

我正在尝试播放音频文件,但由于某种原因它没有播放任何内容,它在机器人连接到语音通道后立即触发 end 事件而不是 start 事件。

client.on('message', message => 
      if(message.content.startsWith('!play')) 

      if(!message.member.voiceChannel) return message.channel.send('connect to voice channel first');

      message.member.voiceChannel.join()
        .then(connection =>  

            console.log("Joined voice channel!");

            const dispatcher = connection.playFile(require("path").join(__dirname, './myfile.mp3'));

            dispatcher.on('start', () =>  //not working
                dispatcher.setVolume(0.70);
                console.log("Playing");
            ); 

            dispatcher.on('error', (err) => console.log(err)); //no errors

            dispatcher.on('end', end =>  //working fine
                console.log("Finished");
                console.log("End: " + end);
                message.member.voiceChannel.leave()
            );
        );

);

【问题讨论】:

【参考方案1】:

只想提一下,neoney 的回答对我来说有效,但它在 connection.playFile 上抛出了一个错误,最终对我有用的是:

const dispatcher = connection.play(require("path").join(__dirname, './myfile.mp3'));

请注意,您还可以在括号中使用 (__dirname, '../myFolderName/myfile.mp3') 以跳出当前文件夹并从另一个命名文件夹中向上一个目录播放.

有关完整设置的更多详细信息,CodeLyon 提供了一个不错的视频/频道: https://www.youtube.com/watch?v=q0lsD7U0JSI&t=917s

【讨论】:

【参考方案2】:

我从node-modules 中删除了ffmpeg-binaries,并使用sudo apt 安装了ffmpeg,现在它工作正常。问题是,我安装了这两个库。

【讨论】:

【参考方案3】:

如文档中所述:https://discord.js.org/#/docs/main/stable/class/VoiceConnection?scrollTo=playFile 文件的路径必须是绝对路径

解决这个问题:

可以使用模块path(无需下载)和全局__dirname获取绝对路径。

const dispatcher = connection.playFile(require("path").join(__dirname, './myfile.mp3'));

【讨论】:

仍然无法正常工作,顺便说一句,我也尝试使用来自 github 的 discord-bot 但这也不起作用。 你安装了ffmpeg和node-opus或opusscript吗? 我猜你可以去 Discord.js 官方 discord 寻求帮助。

以上是关于discord.js 不播放音频文件的主要内容,如果未能解决你的问题,请参考以下文章

Discord Bot 不播放音频 discord.js v13

Discord.js 播放音频文件错误

discord.js 机器人在没有声音的情况下播放音频

discord.js 机器人播放音频但没有声音?

Discord.js 机器人无法离开语音频道

您可以从 discord.js 资源中的 URL 流式传输音频吗