2013-05-17 48 views
7

這只是Google發佈All Access for Google Music之後的一天,但流式(非擁有)媒體的JSON響應中的URL數組包含不會流式傳輸的URL。有人看過這個嗎?他們打幾分之一秒,然後終止。Android Google Music API - All Access

回答

2

我一直在尋找到它,雖然我還沒有找到一個解決方案,我相信這可能是決定需要做什麼有用的:

注意,網址有一系列PARAM但要注意的是,第一種可能是這樣的:

range=0-39706 

但下一個將是:

range=37615-119118 

似乎很奇怪的是,接下來的部分將在不到其中預值開始虛擬部分結束。我的高層猜測是我們需要使用這個範圍寫入一個文件,並且適當地附加字節,以便它們按順序排列。

但這只是我的猜測,並沒有試圖做到這一點,但我正在努力。

UPDATE

我已成功完成上述,但在C++使用Qt框架,以便不機器人。但是在我的實現中似乎確實存在一些問題,因爲每個段都有一個奇怪的吱吱聲,所以我可能需要稍微調整一下字節位置,但我現在可以完成整首歌。

不完全知道如何將其轉化到Android,但我認爲這將是這樣的:

File file = new File("tempFile"); 
file.open(WRITE_ONLY); 
file.write(startingByte, data); 

而當你遍歷剛剛解析出各段的起始字節。

編輯

發現我的問題是,我每一段後關閉文件。如果我將文件保持打開狀態,直到完成了所有片段的編寫,那麼這首歌完美播放。

+0

你是如何處理重疊字節範圍的?你是否倒退每個後續文件的字節位置? 在我第一次嘗試時,我將文件輸出流保留爲打開狀態,但是我只是順序寫出了所有的字節,忽略了重疊,並且我得到了吱吱聲。 – Baron

+0

想通了......是的,你必須在最後的輸出文件中倒退字節位置,因爲你使用每個部分的url中顯示的範圍起始值添加每個部分的數據。 – Baron