5

ストリーミング icy プロトコルからデータを読み取りたいです。問題は、私が試したすべてのライブラリ (dsj、MP3SPI) が HttpUrlConnection を使用してこれを行うことです。ただし、Windows 7 で試してみたところ、通常の原因である「無効な http 応答」は、「HTTP 200 OK」は「ICY 200 OK」とは異なります。ソケットを使用してこれを実行できることはわかっていますが、私は初心者なので、数行のコードを提供できる場合は、また、解決策があれば共有してください。ありがとう、良い一日を!

これは私が試したコードです:

URLConnection connection = new URL("89.47.247.59:8020").openConnection();
InputStream in = connection.getInputStream();
System.out.println("getting lots of bytes");
in.close();

エラーは次のとおりです。

Exception in thread "main" java.io.IOException: Invalid Http response
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.jav‌​a:1328)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:46) Java Result: 1

コードのフォーマット方法や改行の追加方法がわかりませんでした。

編集:以下のコメントからコードを含めました..

4

2 に答える 2

5

代わりにこれを試してください:

URL url=new URL("89.47.247.59:8020");
Socket socket=new Socket(url.getHost(), url.getPort());
OutputStream os=socket.getOutputStream();
String user_agent = "WinampMPEG/5.09";
String req="GET / HTTP/1.0\r\nuser-agent: "+user_agent+"\r\nIcy-MetaData: 1\r\nConnection: keep-alive\r\n\r\n";
os.write(req.getBytes());
is=socket.getInputStream();

これは私にとって完璧に機能しました!

于 2011-10-30T16:36:54.923 に答える
3

MP3SPI はすべてのシステムで正常に動作するはずです。

ICY メタデータを抽出する場合は、次のコードを確認してください: https://gist.github.com/1008126 URL を開き、デコーダーにアタッチできる通常の InputStream を返す IcyInputStream があり、Artist やトラックのタイトル。

hereの情報を使用してこのコードを作成しました。

于 2011-07-31T08:37:33.900 に答える