2013-12-22 4 views
0

내 응용 프로그램을 shoutcast 스트리밍 라디오 스트림을 재생해야합니다. 2 일 동안 인터넷에서 검색했지만 내 애플리케이션 스틸은이 URL을 재생할 수 없습니다. 이 문제를 해결하는 방법을 모르겠습니다.J2ME로 Shoutcast 라디오

이것은 내 샘플 소스 코드입니다.

String url1 = "http://203.150.224.142:8003/; 
HttpConnection con= (HttpConnection)Connector.open(url1); 
InputStream is = con.openInputStream(); 
player = Manager.createPlayer(is, "audio/mpeg"); 
player.realize(); 
player.prefetch(); 
player.start(); 
+0

을 시도,하지만 난 당신이 RTSP 프로토콜 정착 할 수 있다면, 그것은 훨씬 쉽게 될 것 같아요. 나는 (어쨌든) JavaME 폰이 rtsp 프로토콜을 지원한다고 생각한다. –

답변

0

나는이 코드를 프로덕션에 사용 했으므로 잘 작동합니다.

HttpConnection conn = (HttpConnection) Connector.open(music.getTrack_url() + "?streamable=true", Connector.READ_WRITE); 
        if (conn.getResponseCode() == HttpConnection.HTTP_OK) { 
         is = conn.openInputStream(); 

         player = Manager.createPlayer(is, "audio/mp3"); 
         player.addPlayerListener(thisObj); 
         player.realize(); 
         player.prefetch(); 
         player.start(); 
        } 
0

시도해보십시오.

public void loadShoutcast (String url) { StreamConnection connection = null; int BUFFER_SIZE = 1024; DataOutputStream dos_ = null; OutputStream os_ = null; 내가 해결책이없는 {

 System.out.println("opening connection " + url); 

     //Shoutcast URL 
     connection = (StreamConnection) Connector.open(url); 
     os_ = connection.openOutputStream(); 
     dos_ = new DataOutputStream(os_); 
     // send the HTTP request 
     String req = "GET/HTTP/1.1\r\nUser-Agent: Profile/MIDP-1.0 Configuration/CLDC-1.0\r\n\r\n"; 
     dos_.write(req.getBytes()); 
     is = null; 
     is = connection.openInputStream(); 
     long byteDone = 0; 
     int byteCount; 
     byte[] buffer = new byte[BUFFER_SIZE]; 

     //Connection to file where you want to save the content of shoutcast radio 
     //It can be skipped in case you dont want to save the contents 
     out = tempFilecon.openDataOutputStream(); 
     System.out.println("starting download"); 
     while (byteCount = is.read(buffer)) >= 0) 
     { 
      out.write(buffer, 0, byteCount); 
      byteDone += byteCount; 
      done += byteCount; 
     } 
     return; 
    } 

    catch (InterruptedIOException e) 
    { 
     System.out.println("InterruptedIOException 1" + e.getMessage()); 
     return; 
    } 

    catch (Exception e) 
    { 
     System.out.println("ERROR - 51 " + e.getMessage()); 
     return; 
    } 
    finally 
    { 
      if (dos_ != null) 
      { 
       dos_.close(); 
       dos_ = null; 
      } 
      if (os_ != null) 
      { 
       os_.close(); 
       os_ = null; 
      } 
      if (is != null) 
      { 
       is.close(); 
       is = null; 
      } 
      if (out != null) 
      { 
       out.close(); 
       out = null; 
      } 
      System.out.println("closing connection"); 
      if (connection != null) 
      { 
       connection.close(); 
       connection = null; 
      } 
    } 
    // return false; 
}