2011-02-14 3 views
0

아래 코드를 사용하여 서버에서 노래를 재생하고 있습니다.MediaPlayer로 스트리밍 제어하기

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(playUrl); 

그리고 public void onPrepared(MediaPlayer mp) 메서드에서 start 메서드를 호출하고 있습니다. 하지만 때로는 5 %에서 6 %로 버퍼링되어 재생되기 시작하고 때로는 40 또는 60 또는 때로는 80 % 버퍼링되기도합니다. 그리고 플레이어를 준비 할 때 prepareAsync()을 사용하고 있습니다. 그래서, 5 ~ 6 % 후에 노래를 부를 수있는 방법이 있습니까?

답변

0

이 업데이트 버퍼 리스너를 설정 시도하고 일정 비율 후 비디오를 재생 thankx

.
편집 :

boolean mediaPrepared = false; 
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnBufferingUpdateListener(){ 
     void onPrepared(MediaPlayer mp){ 
     mediaPrepared = true; 
     } 
    }); 
mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener(){ 
    public void onBufferingUpdate(MediaPlayer mp, int percent){ 
    if (!mediaPrepared){ 
     mp.prepareAsync(); 
    } 
    if (percent > 5){ 
     mp.start(); 
    } 
    } 
}); 

그리고 정확하게 mediaPrepared 플래그의 값을 처리해야합니다.

잘 될지 모르지만 힌트로 사용할 수는 있습니다. 행운을 빕니다!

+0

나는 이것을 시도했지만, 플레이어가 준비가되어 있지 않으면 오류가 발생합니다. – Hitendra

+0

음, @Hitendra, 내가 쓴 것처럼 이것이 잘 작동하는지 모르겠다.하지만 다른 if-block을 추가 할 수있다. – mdelolmo

+0

mp.prepareAsync()에서 mp.reset()이 필요하다고 생각한다. 확실하지 않다. ... 콜백의 흐름은 내게 꽤 mystirus, 그것은 complets 문서를 따르지 않는 것 ... –