2013-09-06 2 views
6

나는 Shout 캐스트에서 라디오를 재생해야하는 응용 프로그램을 개발 중입니다. API에 대해서는이 내용을 따랐습니다. URLPlay from Shoutcast 안드로이드의 URL

내 개발자 ID로 스테이션 ID를 얻는 데 성공했습니다. "스테이션에 튜닝하는 방법"섹션에서 특정 스테이션을 튜닝하는 방법을 안내했습니다. 나는 그 섹션을 따라 내 안드로이드 미디어 플레이어에 URL을 사용했습니다. 그러나 내 미디어 플레이어는 아무 것도하지 않습니다.

목표 SDK가 16이고 최소 SDK가 13입니다. 참고로 안드로이드 버전은 문제가되지 않기를 바랍니다.

그래서 내 미디어 플레이어와 아무 문제가없는 것 같아요 : 나는 경우 미디어 플레이어와 같은 다른 URL을 사용하여 작동합니다. 나는 이미 해당 게시물을 통해 갔다. 도와주세요.

public class MainActivity extends Activity { 

     Button play,pause,stop; 
     private MediaPlayer mediaPlayer; 
     private String out; 
//  private String url = "http://yp.shoutcast.com/sbin/tunein-station.pls?id=175821"; 
//  private String url = "http://www.hrupin.com/wp-content/uploads/mp3/testsong_20_sec.mp3"; 

     private String url1 = "http://streamplus8.leonex.de:14910"; 
     private String url2 ="http://s2.voscast.com:7016/"; 
     private String url3 ="http://s8.voscast.com:7024/"; 
     private String url4 ="http://s8.voscast.com:7020/"; 
     private String url5 ="http://s5.voscast.com:8216/"; 

     private boolean pauseState = false; 
     ProgressDialog pd; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 

       pd = new ProgressDialog(this); 
       pd.setMessage("Loading your song...."); 
       play = (Button)findViewById(R.id.btn_play); 
       pause = (Button)findViewById(R.id.btn_pause); 
       stop = (Button)findViewById(R.id.btn_stop); 

       mediaPlayer = new MediaPlayer(); 
       this.setVolumeControlStream(AudioManager.STREAM_MUSIC); 
      try { 
       mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
       mediaPlayer.setDataSource(url2); 
       mediaPlayer.prepareAsync(); 
      } catch (Exception e) { 
       Toast.makeText(getApplicationContext(), "Please check your connection!", Toast.LENGTH_LONG).show(); 
       e.printStackTrace(); 
      } 

      play.setOnClickListener(new OnClickListener() {      
         @Override 
         public void onClick(View arg0) { 

           if(pauseState == true) { 
        mediaPlayer.start(); 
       } else { 
         pd.show(); 
        mediaPlayer.setOnPreparedListener(new OnPreparedListener() { 
         @Override 
         public void onPrepared(MediaPlayer mp) { 
          mediaPlayer.start(); 
          if(mediaPlayer.isPlaying()){ 
           pd.dismiss(); 
          } 
         } 
        }); 
       } 
           pauseState = false;        
         } 
       }); 
      pause.setOnClickListener(new OnClickListener() {     
         @Override 
         public void onClick(View arg0) { 
           mediaPlayer.pause(); 
           pauseState = true;        
         } 
       }); 
      stop.setOnClickListener(new OnClickListener() {      
         @Override 
         public void onClick(View arg0) { 
           mediaPlayer.stop(); 
//        mediaPlayer.release(); 
         } 
       }); 


     } 

} 

답변

4

확인. 좋아, 나는 결국 자신을 알아 냈다. 사실 내가 이것을 Url에 쳤을 때 .pls 파일이 다운로드 중입니다. 얻어 올 파일의 내용은 내가 그것을

http://203.150.225.71:8000 

안드로이드 미디어 플레이어 실제 URL.Here를 얻기 위해이 파일을 읽은 다음이 파일을 구문 분석해야이

[playlist] 
numberofentries=1 
File1=http://203.150.225.71:8000 
Title1=(#1 - 10866/10000) COOLfahrenheit 93 
Length1=-1 
Version=2 

같은 것은 할 수있다 이 URL을 재생하십시오.

+0

안녕하세요, 내 안드로이드에 shoutcast API를 구현하고 싶습니다.이 링크를 사용합니다. http://wiki.winamp.com/wiki/SHOUTcast_Radio_Directory_API 그러나이 API를 사용하기 위해 k = [개발자 ID]를 얻는 방법을 모르겠습니다. 내 앱에서. –

+0

기기 ID를 얻기 위해 등록해야합니다. –

+0

URL에 파일이 없습니다. '[playlist] numberofentries = 0 Version = 2 어떻게해야합니까? –

1

다른 솔루션을 찾으려면 .pls 파일을 다운로드하고 싶지 않습니다. 마지막으로, 간단한 스트리밍 앱인 shoutcast가 있습니다. 시도하십시오 this. 스트리밍 URL을 StreamService.java으로 변경하십시오.

+0

당신도 거기에 같은 URL을 사용했습니다 : O –

+0

무슨 뜻입니까? StreamService.java에서 URL을 String url = "http://176.31.115.196:8214/"로 변경하면됩니다. 미디어 플레이어 데이터 소스에 URL을 설정해야합니다. 해당 샘플 프로젝트는 스트림 URL로 실행됩니다. –

+0

_176.31.115.196 : 8214_ 파일을 다운로드하고 읽은 후이 URL이 아닌가요? –