2013-05-17 8 views
7

これは、GoogleがGoogleミュージックのオールアクセスをリリースしてからわずか1日ですが、ストリーミングされた(所有していない)メディアのJSONレスポンスのURL配列にはストリームがないURLが含まれています。誰かがこれを調べましたか?彼らは数秒間再生して終了します。AndroidのGoogleミュージックAPI - オールアクセス

答えて

2

は、私はそれに見てきた私が発見していないのに、私はこれが何をすべきか決定するのに役立つかもしれないと考えている解決策:URLは、範囲のparamを持っていますが、ことに気づく

ていることに注意してください最初の1は次のようにことがあります

range=0-39706 

しかし、次の1は次のようになります。次のセグメントがどこ事前より小さい値で開始すると奇妙に思える

range=37615-119118 

大規模なセグメントが終了した。私の上位レベルの推測では、この範囲を使用してファイルに書き込む必要があり、バイトが適切に付加されて順番に並べられる必要があるということです。

これは私の推測ですが、これを行おうとはしませんでしたが、私はそれに取り組んでいます。

UPDATE

私は正常に上記を達成したが、Cでき++ので、AndroidのないQtフレームワークを使用しました。しかし、私の実装では問題があるようですが、すべてのセグメントには奇妙な音がするので、バイト位置を少し調整する必要があるかもしれませんが、今は全体の曲を処理することができます。ただ、各セグメントの開始バイトを解析を通して

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

そして、あなたループとして:これは、Androidに変換でしょうが、私はそれのようなものになると思いますか

正確にわかりません。私の問題を発見し

EDIT

は、私は、各セグメントの後にファイルを閉じるされたということでした。すべてのセグメントを書き終えるまでファイルを開いたままにしておくと、曲は完全に再生されます。

+0

どのようにオーバーラップするバイト範囲を処理しましたか?連続する各ファイルのバイト位置を巻き戻しましたか? 私の最初の試みでは、指定したとおりにファイル出力ストリームを開いたままにしましたが、オーバーラップを無視してすべてのバイトを順次書き出しました。 – Baron

+0

これはわかりました。はい、各パーツのURLに表示されている範囲の開始値を使用して、各パーツのデータを追加するときに、最終出力ファイルのバイト位置を巻き戻す必要があります。 – Baron

関連する問題