PageViewer(Android)中媒体播放器的启动缓冲区
我正在尝试在PageViewer中传输2-3秒的.ogg文件,我需要能够缓冲3-4.ogg文件,以便在它们单击“预览”时即时显示 例如: 已加载缩略图的Gridview 用户点击任何缩略图 活动加载到ViewPager中 ViewPager显示图像和播放按钮 单击播放MediaPlayer将从URL加载音频 当我单击播放时,它有1-4秒的延迟,直到播放开始 我滑动到下一页,再延迟1-4秒点击播放按钮 是否可以预加载/缓冲下一个2-3个ViewPager选项卡,以便进行即时播放 这些文件很小,大小为25-100kb 公共音乐{ 也 //更新: 我尝试创建MediaPlayer[]数组,但结果为空 实例变量:MediaPlayer[]arraymediplayer 一旦创建:PageViewer(Android)中媒体播放器的启动缓冲区,android,json,media-player,audio-streaming,buffered,Android,Json,Media Player,Audio Streaming,Buffered,我正在尝试在PageViewer中传输2-3秒的.ogg文件,我需要能够缓冲3-4.ogg文件,以便在它们单击“预览”时即时显示 例如: 已加载缩略图的Gridview 用户点击任何缩略图 活动加载到ViewPager中 ViewPager显示图像和播放按钮 单击播放MediaPlayer将从URL加载音频 当我单击播放时,它有1-4秒的延迟,直到播放开始 我滑动到下一页,再延迟1-4秒点击播放按钮 是否可以预加载/缓冲下一个2-3个ViewPager选项卡,以便进行即时播放 这些文件很小,大小
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) {
};
arraymediplayer=newmediaplayer[arrayURLAudio.length];
for(int i=0;i
如果我尝试打印我的ArraymedipLayer[I],它将显示为空。您在第一个代码段中只创建了一个MediaPlayer。然后您创建了一个MediaPlayer类型的空数组,并尝试在添加播放机之前访问它。因此,要使其正常工作,您需要设置ArraymedipLayer[I]在设置数据源之前使用新的MediaPlayer。Ah!谢谢:)这已经解决了我的空指针问题。现在我需要弄清楚如何使prepareAsync不抛出IllegalStateException,但我可以解决这个问题:)
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) {
}
});
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) {
};