Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PageViewer(Android)中媒体播放器的启动缓冲区_Android_Json_Media Player_Audio Streaming_Buffered - Fatal编程技术网

PageViewer(Android)中媒体播放器的启动缓冲区

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选项卡,以便进行即时播放 这些文件很小,大小

我正在尝试在PageViewer中传输2-3秒的.ogg文件,我需要能够缓冲3-4.ogg文件,以便在它们单击“预览”时即时显示

例如: 已加载缩略图的Gridview 用户点击任何缩略图 活动加载到ViewPager中 ViewPager显示图像和播放按钮 单击播放MediaPlayer将从URL加载音频 当我单击播放时,它有1-4秒的延迟,直到播放开始 我滑动到下一页,再延迟1-4秒点击播放按钮

是否可以预加载/缓冲下一个2-3个ViewPager选项卡,以便进行即时播放

这些文件很小,大小为25-100kb

公共音乐{

//更新:

我尝试创建MediaPlayer[]数组,但结果为空

实例变量:MediaPlayer[]arraymediplayer

一旦创建:

    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) {
        };