当前位置: 首页 > 知识库问答 >
问题:

不一致js机器人尝试在语音频道上播放mp3文件-没有错误,也没有声音

宗政招
2023-03-14

我的机器人加入了一个语音频道,然后离开并发送消息“播放正常!”,但不播放mp3。我在Windows上,我已经检查过可以通过命令行用ffmpeg播放mp3文件。有人知道怎么了吗?

const path = require('path')

client.channels.fetch('Channel_ID').then(channel => {
     console.log(channel.name)
     console.log(path.join(__dirname, 'music.mp3'))
     channel.join().then((connection) => {
         const dispatcher = connection.play(path.join(__dirname, 'music.mp3'));
         dispatcher.on("speaking", speaking => {
             if (!speaking) {
               channel.leave()
               msg.channel.send("Playing ok!")
             }
        });         
   });
});

更新:我为“finish”事件更改了“speaking”,还尝试了评论中的音频文件。现在,机器人加入语音频道,在mp3播放时间内保持不变,然后离开语音频道,但还没有声音。

更新2:我现在将ffmpeg添加到我的路径中。机器人显示出一个绿色的圆圈,好像在玩什么东西,但又没有声音了。以防万一,我把我的机器人管理员许可,但这也是不够的。

谢谢你的帮助。

使用discord。jsv12.5.3


共有1个答案

宋宇
2023-03-14

不和谐。js voice要工作,您需要安装以下软件包(如安装部分的文档中所述):discordjs/opus或opusscript。

npm install @discordjs/opus

也不和谐。js依赖于prism媒体,您应该安装ffmpeg才能正常工作。

npm install ffmpeg-static

如果不想将ffmpeg作为npm包安装,并且已经安装了ffmpeg,请确保将其添加到环境变量中,然后重新启动工作环境。

OP说,在将ffmpeg添加到PATH后重新启动他的计算机是有效的。

评论中的其余信息:

还有你的留言“玩得好!”是错误的,这意味着机器人没有说话。。。看上面,如果(!speaking){…} 。因此,当您在机器人加入语音通道后收到此消息时,出现了问题,因为StreamDispatcher立即结束。

要对此进行调试,请查看StreamDispatchererror事件。

 类似资料:
  • 我尝试建立一个按钮,一旦点击它播放一个音频文件,如果再次点击它停止它。在按钮中,有一个属性src,其中放置了应该播放的文件的路径。 null null 当我尝试单击该按钮时,日志显示“”。但音频已设置,警报显示文件路径在那里。 我做错了什么?

  • 我有一个叫“土豆音乐”的音乐机器人,它是一个音乐机器人。目前,机器人按照我希望的方式执行命令。但是一旦我停止在本地托管机器人并将其部署在Heroku上,就有一些错误开始出现。 我有一个名为“播放”的命令,每当我执行该命令时,它都应该在语音频道上播放歌曲。命令在命令开头有一个条件,用于检查用户是否已经在语音频道中。但是在我在Heroku上托管了这个机器人之后,一旦我执行命令,它就会一直告诉我我没有连

  • 我想知道是否有办法让我的discord机器人在播放youtube视频的音频后离开语音频道。我试着使用睡眠(视频的持续时间),但是为了获取和下载视频来播放,我使用了pafy,它给出了视频的持续时间,但是是00:00:00格式,它作为字符串而不是整数。我在=lamda e:await vc之后将代码更改为diconnect。断开连接,但它给我一个错误,在异步函数外面说“await”。我播放音乐的代码如

  • 我对javascript和discord.js很陌生,有人知道如何让机器人加入一个频道,播放一个文件然后离开吗? 以下是我尝试过的: 现在,它将发送消息加入语音通道,而不管我是否在其中,如果我在其中,它就不会加入语音通道并播放文件。任何帮助都很感激。

  • 录制完一个呼出的电话后,我试图播放录制的文件——以确保通话录音按预期工作(我使用“媒体播放器”进行),但没有声音。所以我试图访问手机上的实际文件(只需将手机连接到电脑上并访问它的文件)。当我播放录音时,它的长度是正确的,但同样没有声音。 我错过了什么? 这是我记录电话的方式: 这是结束通话记录的代码: 这是我播放音频文件的方式:

  • 有了一个机器人,我试着用discord在一个音频通道中播放一个音频文件(mp3)。js、ffmpeg和opusscript。 基本上,这就是它的工作原理: 因此,音频播放,但在结束前停止(例如,对于5s音频文件,它在3s后停止)。机器人留在频道中,我可以再次播放,但对于我的所有文件,它在结束前停止。我怎样才能解决这个问题?