问题标签 [lavaplayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
57 浏览

java - 音乐未在 Discord 语音频道中播放

我正在尝试将播放音乐的功能添加到我的自定义 Discord 机器人中。我正在用 Java 11、Spring Boot、Discord4j 和 LavaPlayer 库编写它。

我有命令 !join 使 Discord 机器人加入输入命令的人的语音频道。这可行,但我将其分配给LavaPlayerAudioProvider机器人VoiceState加入后。所以这里可能会出现错误(我不知道)。这是 !join 命令的类:

老实说,我认为错误不会出现在 !join 命令中,但更多地理解这个问题可能会很有用。

我在AudioConfig类中设置了这样的音频配置:

一旦机器人加入语音频道,我写了一个 !play [youtube url] 命令来播放音乐。

在这里LavaPlayerAudioProviver提供音乐:

现在,棘手的部分来了。我调试了代码以逐步查看在我键入 !play [url] 命令后代码是如何执行的。

当代码到达TrackScheduler类时,并没有执行trackLoaded()播放歌曲的方法,而是执行了该noMatches()方法,这基本上意味着找不到URL,因此无法播放音乐。你可以在TrackScheduler这里找到课程:

我尝试了不同的 URL,但它们最终都进入了 noMatch() 方法......我遵循了 Discord4J 指南(https://docs.discord4j.com/music-bot-tutorial)但他们没有使用 Spring Boot 所以这是一个小谜题..

如果您需要更多信息,我很乐意提供给您。提前谢谢各位!