我需要播放视频的前2分钟。使用onBufferingUpdate()可以得到缓冲的百分比。但是到了onPrepared的时间,我被缓冲为40%。这是2分钟以上的视频。 (考虑到我有30分钟的视频)

我只能以2分钟播放/缓冲视频吗?

谢谢。

最佳答案

缓冲区大小已预先设置在固件中。您所能做的就是保持对缓冲区已填充量的标签,即使是百分比也是如此。
尺寸在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;
    }


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

10-04 19:38