PageViewer에서 2-3 초 .ogg 파일을 스트리밍하려고하는데, 3-4 .ogg 파일을 버퍼링 할 수 있어야합니다. 미리보기를 클릭하십시오.PageViewer의 미디어 플레이어 시작 버퍼 (안드로이드)
는 예 : 축소판 GRIDVIEW이 ViewPager ViewPager에 축소판 작업 부하에 사용자의 클릭을로드는 이미지와 재생 버튼 클릭하면 내가 플레이를 클릭하면 URL 에서 오디오를로드 할 MediaPlayer를 재생 표시 재생이 시작될 때까지 1-4 초의 지연이 있습니다. 다음 페이지로 스 와이프하고 다른 1-4 초 지연으로 재생 버튼을 누르십시오.
다음 2-3 개의 ViewPager 탭을 미리로드하거나 버퍼링 할 수 있습니까? 그래서 즉시 재생할 수 있습니까?
이 파일의 크기는 25-100kb입니다.
공공 무효 playmusic() {
try {
this.mediaPlayer = new MediaPlayer();
if (mediaPlayer.isPlaying() || mediaPlayer != null) {
this.stopAudio();
this.mediaPlayer.stop();
}
this.mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
this.mediaPlayer.setDataSource(arrayURLAudio[getPos()]);
this.mediaPlayer.prepare();
this.mediaPlayer.start();
} catch (IOException ioe) {
}catch (IllegalThreadStateException itse){
}catch (Exception e){
}
또한
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
if (mediaPlayer != null) {
stopAudio();
}
textView.setText(arrayURLAnimalName[i]);
setPos(i);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
UPDATE는 // :
나는 MediaPlayer를 [] 배열을 만들려고했지만이로 다가오고 없는.
인스턴스 변수 : MediaPlayer [] arrayMediaPlayer;
에서 onCreate :
arrayMediaPlayer = new MediaPlayer[arrayURLAudio.length];
for (int i = 0; i < arrayURLAudio.length; i++) {
try {
arrayMediaPlayer[i].setDataSource(arrayURLAudio[i]);
} catch (IOException ioe) {
} catch (NullPointerException npe) {
};
내가 [I], 그것으로 널오고 내 arrayMediaPlayer를 인쇄하려고하면
.
아! 고마워 :) 이것은 널 포인터를 해결했다. 이제 prepareAsync가 IllegalStateException을 던지지 않게 만드는 방법을 알아야하지만 문제를 해결할 수 있습니다. :) – Will