首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PageViewer (安卓)中媒体播放器的启动缓冲区

PageViewer (安卓)中媒体播放器的启动缓冲区
EN

Stack Overflow用户
提问于 2014-01-20 08:43:36
回答 1查看 254关注 0票数 1

我试图将2-3秒的.ogg文件流到PageViewer中,我需要缓冲3-4 .ogg文件的能力,这样当它们单击预览时,它就会立即出现。

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

是否有可能预加载/缓冲下一个2-3 ViewPager标签,这样我就可以立即播放?

这些文件很小,25-100 25。

公开无效音乐(){

代码语言:javascript
复制
    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){

    }

也是

代码语言:javascript
复制
    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) {

        }
    });

//最新情况:

我尝试过创建一个MediaPlayer[]数组,但是这个结果是null。

实例变量: MediaPlayer[] arrayMediaPlayer;

onCreate:

代码语言:javascript
复制
    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) {
        };

如果我试图打印出我的arrayMediaPlayeri,它将显示为null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-21 03:52:37

在第一个代码段中只创建一个MediaPlayer。然后创建一个类型为MediaPlayer的空数组,并在添加播放器之前尝试访问它。因此,在设置数据源之前,需要使用新的arrayMediaPlayeri设置MediaPlayer。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21229488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档