私はshoutcastストリームを再生するための小さなアプリを作成しており、これを行うためにjavazoom.jl.player.Playerを使用しています。これが私のコードです:
package music;
import java.io.InputStream;
import java.net.URL;
import javazoom.jl.player.Player;
class audiostream extends Thread {
private Player mediafilePlayer;
private volatile boolean shouldPlay = true;
@Override
public void run() {
while (true) {
if (shouldPlay) {
player();
}
}
}
public void player() {
try {
URL mediafile = new URL("http://hi1.streamingsoundtracks.com:8000/;");
InputStream stream = mediafile.openStream();
mediafilePlayer = new Player(stream);
mediafilePlayer.play();
} catch (Exception e) {
System.out.println(e);
}
}
public void pause() {
shouldPlay = false;
mediafilePlayer.close();
}
public void play() {
shouldPlay = true;
}
}
これは私のMacで完全に正常に機能し、ストリームを聞くことができます。ただし、Windowsでこれを実行しようとすると、「java.io.IOException:無効なHttp応答」というエラーが発生します。これは、 SHOUTcastが氷のような200 okヘッダーを返すためだと思いますが、Windows上の何かがhttpヘッダーを返すようにする必要があります。javazoom Playerを使用して、Windowsでこれらのさまざまなヘッダーを受け入れるようにする方法が見つからないようです。