0
我正在開發一個音頻strreaming應用程序,我正在使用Streamingplayer 現在我想了解有關當前正在播放的歌曲的信息,我該如何獲取? 它不可用作url的一部分,因爲它在streamplayer api中顯示。 有沒有人做過這樣的事情,然後請回復。Streamingplayer和當前播放信息
如何更新當歌曲改變?
我正在開發一個音頻strreaming應用程序,我正在使用Streamingplayer 現在我想了解有關當前正在播放的歌曲的信息,我該如何獲取? 它不可用作url的一部分,因爲它在streamplayer api中顯示。 有沒有人做過這樣的事情,然後請回復。Streamingplayer和當前播放信息
如何更新當歌曲改變?
你可以參考鏈接:http://www.smackfu.com/stuff/programming/shoutcast.html 並且可以使用下面的代碼
void getMetaData(){
Thread metaDataThread = new Thread(new Runnable(){
public void run(){
try {
metaDataCheckBit = false;
StreamConnection streamConnection=null;
HttpConnection httpConnection = null;
InputStream inputStream =null;
streamConnection=(StreamConnection)Connector.open(newUrl);
httpConnection=(HttpConnection)streamConnection;
httpConnection.setRequestProperty("Icy-metadata", "1");
int httpStatus=httpConnection.getResponseCode();
if(httpStatus==HttpConnection.HTTP_OK){
String mint = httpConnection.getHeaderField("icy-metaint");
inputStream = streamConnection.openInputStream();
int length= Integer.parseInt(mint);
int b = 0;
int count =0;
while(count++ < length){
b = inputStream.read();
}
int metalength = ((int)b)*16;
if(metalength <= 0)return;
byte buf[] = new byte[metalength];
inputStream.read(buf,0,buf.length);
String metaData = new String(buf);
int streamTilleIndex = metaData.indexOf("StreamTitle");
// if(streamTilleIndex <= 0)return;
String streamTille = metaData.substring(streamTilleIndex);
int eqindex = streamTille.indexOf('=');
// if(eqindex <= 0){return;}
int colindex = streamTille.indexOf(';');
// if(colindex <= 0)return;
String metaDatam = streamTille.substring(eqindex, colindex);
int lengthOfMaetaDataM = metaDatam.length();
// if(lengthOfMaetaDataM <= 0){return;}
metaDataParsed =metaDatam.substring(2, lengthOfMaetaDataM-2);
if(metaDataParsed!="")
metaDataCheckBit = true;
}
}
catch (Exception e){
System.out.println(e);
}
}
});
metaDataThread.start();
}
謝謝老兄!我會如何知道賽道何時變更?我的意思是當我們需要刷新信息時我們可以再次調用這個方法 – 2011-05-05 09:27:42