2013-05-17 13 views
7

Questo è solo un giorno dopo che Google ha rilasciato All Access per Google Music, ma l'array URL nella risposta JSON per i contenuti multimediali (non di proprietà) contiene URL che non trasmettono streaming. Qualcuno ha esaminato questo? Giocano per una frazione di secondo e poi terminano.API Android Google Music - All Access

risposta

2

ho cercato in esso e anche se non ho trovato una soluzione credo che questo può essere utile per determinare ciò che deve essere fatto:

Si noti che gli URL hanno una serie param meno di notare che la prima si può essere come:

range=0-39706 

Ma quello successivo sarebbe:

range=37615-119118 

il che sembra strano che il segmento successivo sarebbe cominciare ad un valore inferiore dove la pre il segmento vizio è finito. La mia ipotesi di alto livello è che avremo bisogno di scrivere su un file usando questo intervallo e aggiungere i byte in modo appropriato in modo che siano in ordine.

Ma questa è solo una mia ipotesi, non ho provato a farlo ma ci sto lavorando.

UPDATE

ho compiuto con successo quanto sopra, ma in C++ usando il framework Qt, quindi non Android. Ma sembra esserci qualche problema nella mia implementazione perché ogni segmento ha uno strano rumore di squeak, quindi potrei aver bisogno di aggiustare la posizione dei byte un po ', ma ora posso passare attraverso l'intera canzone.

Non esattamente sicuro di come questo si tradurrebbe in Android, ma penso che sarebbe qualcosa di simile:

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

E come si esegue un ciclo appena analizzare fuori il byte di partenza per ogni segmento.

EDIT

scoperto che il mio problema era che stavo chiudendo il file dopo ogni segmento. Se lascio il file aperto fino a quando non riesco a scrivere tutti i segmenti, la canzone viene riprodotta perfettamente.

+0

Come sono stati gestiti gli intervalli di byte sovrapposti? Hai riavvolto la posizione del byte per ogni file successivo? Nel mio primo tentativo, ho lasciato aperto il flusso di output del file come hai notato, ma ho appena scritto tutti i byte in modo sequenziale, ignorando la sovrapposizione e sto ottenendo quel cigolio. – Baron

+0

Capito bene ... sì, è necessario riavvolgere la posizione del byte nel file di output finale mentre si aggiungono i dati da ciascuna parte utilizzando il valore iniziale dell'intervallo mostrato nell'URL per ciascuna parte. – Baron

Problemi correlati