2010-12-08 2 views
1

내 애플리케이션이 ShoutCast 스트리밍을 재생하고 대상 OS가 1.6 이상입니다. NPR 응용 프로그램에서 일부 수정 코드를 적용했습니다.Android Shoutcast : 1.6에서 ShoutCast 스트리밍 재생 도움이 필요

여기 코드 (2.1 테스트 삼성 갤럭시) 시뮬레이터 또는 장치에 아무것도 재생 doesnot 코드

mediaPlayer = new MediaPlayer(); 
mediaPlayer.reset(); 
mediaPlayer.setDataSource(url); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
// Log.d(LOG_TAG, "Preparing: " + playUrl); 
mediaPlayer.prepareAsync(); 
mediaPlayer.start();` 

이다.


다음은 LogCat 메시지입니다.

http://88.191.81.31:8206
12-08 14 재생에 관하여 : 16 : 42.229 : WARN/MediaPlayer를 (5520) : 정보/경고 (1, 26)
12-08 14 : 16 : 42.239 : ERROR/PlayerDriver을 (1870) : 명령 PLAYER_INIT가 오류 또는 정보로 완료되었습니다. PVMFFailure
12-08 14 : 16 : 42.239 : 오류/MediaPlayer (5520) : 오류 (1, -1)
12-08 14 : 16 : 42.239 : WARN/PlayerDriver (1870) : PVMFInfoErrorHandlingComplete
12-08 14:16:42.259 : 오류 0 MediaWrite Media Player (0) : 상태 0에서 호출 시작됨
12-08 14 : 16 : 42.259 : ERROR/MediaPlayer (5520) : 오류 (-38, 0)
12-08 14 : 16 : 42.299 : INFO/MediaPlayer (5520) : 정보 (1,26)
12-08 14 : 16 : 42.299 : 오류/MediaPlayer 5520) 오류 (1, -1)
12-08 14 : 16 : 42.304 : ERROR/MediaPlayer를 (5520)은 오류 (-38,0) 여기서


질문이다. 1. 장치에서 무슨 일이 일어 났는지 말해 줄 수 있습니까? 2.이 오류를 어떻게 해결할 수 있습니까?

+0

방법 SHOUTcast에 재생 HTTP : //stackoverflow.com/a/8833346/265167 –

답변

4

start() 너무 일찍 전화하고 있습니다. MediaPlayer의 Javadoc과는 (그림에서 보면) 그것을 설명 :

  1. 어느 당신은 당신이 호출 할 start(), 또는

  2. 당신은 prepareAsync()를 호출 OnPreparedListener.onPrepared() 대기를 호출하기 전에 가능하면 (다음, prepare()을 호출해야 이 메서드 내에서) start()을 호출하십시오.

업데이트 :

하는 Shoutcast 스트림은 nativelly 2.2에서 지원됩니다. 이전 버전의 경우 응답 프로토콜을 ICY (shoutcast)에서 미디어 플레이어가 지원하는 HTTP로 변경하는 로컬 프록시를 만들어야합니다. 이것 좀보세요 :

http://code.google.com/p/npr-android-app/source/browse/trunk/Npr/src/org/npr/android/news/StreamProxy.java

이 이전에 논의되었습니다?

Listen to a shoutcast with Android

+0

내가 가진 이것을 시도했다.작동하지 않습니다 여기에 업데이트 된 코드'mediaPlayer = new MediaPlayer();가 있습니다. \t \t \t mediaPlayer.setAudioStreamType (AudioManager.STREAM_MUSIC); \t \t \t mediaPlayer.setDataSource (url); \t \t \t mediaPlayer.prepareAsync(); \t \t \t mediaPlayer.setOnPreparedListener (새 OnPreparedListener() { \t \t \t \t \t @Override \t \t \t 공개 무효 onPrepared (MediaPlayer가 된 MP) { \t \t \t \t \t Log.i ("IN", " 준비된 청취자 "), \t \t \t \t \t mediaPlaye r.start(); \t \t \t \t} \t \t \t은});'로그 캣 메시지가 다음 설명이다. – Prasham

+0

경고/MediaPlayer (6592) : 정보/경고 (1, 26) 12-08 15 : 18 : 18.214 : 정보/MediaPlayer (6592) : 정보 (1,26) 12-08 15 : 18 : 18.219 : 오류/PlayerDriver (1870) : 명령 PLAYER_INIT가 오류 또는 정보 PVMFFailure와 함께 완료되었습니다. 12-08 15 : 18 : 18.219 : 오류/MediaPlayer (6592) : 오류 (1, -1) 12-08 15 : 18 : 18.219 : ERROR/MediaPlayer (6592) : 오류 (1, -1) 12-08 15 : 18 : 18.219 : WARN/PlayerDriver (1870) : PVMFInfoErrorHandlingComplete – Prasham

+0

먼저'setOnPreparedListener (..) 다음에'prepareAsync '. 둘째 :'setDataSource()'중에 오류가 발생 했습니까? –

관련 문제