代码之家  ›  专栏  ›  技术社区  ›  user2234

如何在Android中播放/缓冲仅几分钟的视频?

  •  2
  • user2234  · 技术社区  · 10 年前

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

    有什么方法可以让我只播放/缓冲2分钟的视频吗?

    谢谢

    1 回复  |  直到 10 年前
        1
  •  2
  •   Sagar Pilkhwal    10 年前

    缓冲区大小预先设置在固件中。你所能做的就是记录缓冲区的填充量,甚至只是按百分比计算。 尺寸设置为 frameworks/base/media/libstagefright/include/NuCachedSource2.h

    看看这个 bug report 在code.google.com上。


    编辑: 您可以使用 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(); 陈述