2016-04-29 155 views
1

我编码的Minecraft插件,(只是修改了游戏的Minecraft不过的Minecraft服务器,而不是客户端修改上使用)如何通过URL输入播放的SoundCloud歌曲的音频

,我想创造的东西,当玩家输入

“/ playsong”

用的SoundCloud URL一起,就会发现,URL和循环播放。

(能发挥的SoundCloud播放列表将非常感激)

其他所有的工作都由我来完成。 (检查URL是否为空,测试玩家是否与有效URL一起发送/播放等)

添加注释//告诉我代码中的某些位将会被赞赏。

谢谢您的阅读。

〜Matthew274

回答

0

这通常是不可能的。我的世界没有任何方法来播放需要从远程服务器下载的任意歌曲。有几种方法仍然可以做到这一点,但这并不简单。

一种技术是采取歌曲并尝试将其转换为一系列与/playsound(或音符块)一起使用的音符。这并不容易,也不会给出完美的结果,但它假设可行(虽然我不知道任何细节)。

另一种技术是创建资源包,将其发送给客户端,然后让他们播放歌曲。这也是不平凡的,但仍然可行。一般程序将是:

  • 找到并从soundcloud下载歌曲(我不知道soundcloud的API为此,但我认为他们有一个)。
  • 如有必要,请将歌曲转换为.ogg文件,格式为.mp3。这可能还有一个库。
  • 使用该声音(和适当的声音索引)创建一个资源包,并临时将其下载到服务器上。
  • 发送链接到该资源包的Resource Pack Send数据包。
  • 等待客户回复“接受”的Resource Pack Status
  • 使用Named Sound Effect数据包播放歌曲(或/playsound)。

这个过程并不简单,但如果你喜欢养的歌曲集合中的播放列表,并在资源包发送多首歌曲出头,你应该能够实现它。你需要ProtocolLib发送自定义数据包。

我很抱歉,我不能给代码这一点,但它是一个复杂的任务,需要几个部分,其中没有一个我认识的细节。

+0

你好。谢谢你回答我。它糟透了,我不能做我打算做的事。 – Matthew274

+0

我想到的是,玩家可以将歌曲下载到他们的资源包中,在一个名为“歌曲”的新文件夹中。然后在游戏中他们可以做“/ playsong radioactive”,它会在“歌曲“称为”放射性“如果它找到一个,它将开始播放歌曲给玩家。如果没有找到“放射性”文件,它会向玩家发送一条消息:“文件”放射性“无法找到。”我希望这一个将工作! – Matthew274

+0

@马修274是的,应该有效。您可能还需要在资源包中创建[自定义声音索引](http://minecraft.gamepedia.com/Sounds.json)。 – Pokechu22

相关问题