我需要播放前2分钟的视频。使用onBufferingUpdate()我得到缓冲的百分比。但是当onPrepared被调用时,我得到缓冲%为40.这超过了2分钟的视频。 (考虑到我有30分钟的视频)
有什么方法可以播放/缓冲视频只有2分钟?
感谢。
答案 0 :(得分: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();
。