Я пытаюсь передать 2-3-секундные .ogg-файлы в PageViewer, мне нужна возможность буферизации 3-4 .ogg-файлов, чтобы они были мгновенными, когда они Предварительный просмотр кликов.Пуск буфера для медиаплеера в PageViewer (Android)
Пример: Gridview миниатюр загружаются пользователь нажимает на любой эскиз активности нагрузок в ViewPager ViewPager отображает изображение плюс кнопки воспроизведения При нажатии на кнопку Play на MediaPlayer будет загружать аудио с URL Когда я нажимаю играть он имеет задержку 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) {
};
Если я пытаюсь напечатать мой arrayMediaPlayer [я], его придумывают утратившим.
Ах! спасибо :) Это разрешило мой нулевой указатель. Теперь мне нужно выяснить, как заставить prepareAsync не бросать IllegalStateException, но я могу устранить эту проблему :) – Will