Streamingplayer и текущая игровая информация - PullRequest
0 голосов
/ 04 мая 2011

Я занимаюсь разработкой приложения для потокового аудио и использую Streamingplayer. Теперь мне нужна информация о воспроизводимой в данный момент песне. Как я могу ее получить?Он не доступен как часть URL-адреса, как показано в API streamplayer.Кто-нибудь сделал такую ​​вещь, тогда ответьте пожалуйста.

Как я могу обновить это, когда песня изменится?

1 Ответ

1 голос
/ 05 мая 2011

Вы можете обратиться по ссылке: 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();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...