2016-04-29 265 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

相關問題