【发布时间】:2014-09-04 14:10:35
【问题描述】:
我需要播放视频的前 2 分钟。使用 onBufferingUpdate() 我得到缓冲的百分比。但是到 onPrepared 被调用时,我的缓冲百分比为 40。这是超过 2 分钟的视频。 (考虑到我有一个 30 分钟的视频)
有什么方法可以播放/缓冲视频仅 2 分钟?
谢谢。
【问题讨论】:
标签: android android-videoview buffering
我需要播放视频的前 2 分钟。使用 onBufferingUpdate() 我得到缓冲的百分比。但是到 onPrepared 被调用时,我的缓冲百分比为 40。这是超过 2 分钟的视频。 (考虑到我有一个 30 分钟的视频)
有什么方法可以播放/缓冲视频仅 2 分钟?
谢谢。
【问题讨论】:
标签: android android-videoview buffering
缓冲区大小已预先设置在固件中。您所能做的就是密切关注缓冲区的填充量,即使这只是百分比。
大小设置在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。
【讨论】: