【问题标题】:How can we play/buffer only few minutes of a video in Android?我们如何才能在 Android 中播放/缓冲几分钟的视频?
【发布时间】:2014-09-04 14:10:35
【问题描述】:

我需要播放视频的前 2 分钟。使用 onBufferingUpdate() 我得到缓冲的百分比。但是到 onPrepared 被调用时,我的缓冲百分比为 40。这是超过 2 分钟的视频。 (考虑到我有一个 30 分钟的视频)

有什么方法可以播放/缓冲视频仅 2 分钟?

谢谢。

【问题讨论】:

    标签: android android-videoview buffering


    【解决方案1】:

    缓冲区大小已预先设置在固件中。您所能做的就是密切关注缓冲区的填充量,即使这只是百分比。 大小设置在frameworks/base/media/libstagefright/include/NuCachedSource2.h

    在 code.google.com 上查看 bug report


    编辑: 您可以使用mVideoView.getCurrentPosition(); 获取视频的当前位置,这将以毫秒为单位返回当前位置,现在您必须使用AsynTask

    private class myAsync extends AsyncTask<Void, Integer, Void>
    {
        @Override
        protected Void doInBackground(Void... params) {
            mVideoView.start();            
            do {            
                try {
                    if(mVideoView.getCurrentPosition() == TimeUnit.MINUTES.toMillis(yourMinutes)){
                        mVideoView.stop();
                    }
                } catch (Exception e) {
                }
            } while (mVideoView.getCurrentPosition() != mVideoView.getDuration());
            return null;
        }
    

    您可以使用new myAsync().execute(); 语句启动AsyncTask

    【讨论】:

    • 如果是这样的话,如果我忽略缓冲区,是否可以只玩 2 分钟或说 10 分钟?
    猜你喜欢
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多