android 播放网络视频:拖动进度条,实现缓冲到拖动位置才开始播放的有关问题

android 播放网络视频:拖动进度条,实现缓冲到拖动位置才开始播放的问题
本帖最后由 kg_second 于 2015-04-01 13:34:59 编辑
android 播放网络视频:拖动进度条之后, 先暂停当前视频, 等缓冲完毕数据之后再播放视频怎么实现
相关:
(1)因为现在的情况是还没缓冲到我拖动的位置,就开始播放视频了,这样出现有1到2秒左右的卡顿,一个师兄建议我
先缓冲到拖动的位置完毕之后再开始播放
(2)准备使用mediaPlayer回调函数中实现的public boolean onInfo(MediaPlayer mp, int what, int extra, int viewId)
的常量      MEDIA_INFO_BUFFERING_START,      MEDIA_INFO_BUFFERING_END
来实现,但是问题是,当拖动进度条的时候,MediaPlayer的seekTo执行完毕之后,videoActivity才接受到这两个常量的消息提醒。
而seekTo执行之后,视频就已经跳到还没缓冲完毕的位置上,导致卡顿。

总结一下:怎么做才能在使得视频seekTo到 已经缓冲完毕的视频上面?

------解决思路----------------------
setOnPreparedListener设置后,拖动后会等缓冲数据准备好再播放。
------解决思路----------------------
昨晚看了一部电影,睡觉前,突然有了一个想法。
用FreamLayout把progressBar 和seekBar 放在一个位置上,progressBar和seekBar的最大值都设为当前视频总长度,开启线程加载进度条,progressBar和seekBar的颜色调下,progressBar颜色浅一点,就好像看视频时的那个灰色进度条一样,get到的数据用线程加载到进度条上,这样就可以清楚的看到当前缓冲到的地方;如果用户非要拖动seekBar到没有缓冲好的地方,那么开启一个线程加载圆形进度条并暂停播放,然后,取出progressBar的值与seekBar所在的位置的值比较,就可以知道该缓冲还是该播放了。大致意思就是这样,希望我的描述你的理解,呵呵。