Android视频播放器缓冲时流量显示的实现方式
来源:互联网 发布:linux增大分区 编辑:程序博客网 时间:2024/05/17 23:46
最近做项目时,要用到视频播放器,做好以后发现,在播放网络视频是不能像其它软件一样如(PPTV、QQLIVE)等,在视频缓冲的时候显示视频缓冲的大小(kb/s)。上网找了很多好像没有类似的方法。比如:
videoview的getBufferPercentage:这个方法是获取视频加载的百分比,但是不能转换为KB/S,而且视频已经播放出来了才能出发这个事件,一般用来设置seekBar。
MediaPlayer的setOnBufferingUpdateListener:和getBufferPercentage方法一样。
也有人说可以用MediaPlayer.MediaPlayer:这个方法中的MEDIA_INFO_DOWNLOAD_RATE_CHANGED来监听下载速度。但是我找了半天也没有,我用的是ANDROID2.2.
都不行,然后我就想到了流量监控,不是就能知道在视频缓冲的时候用了多少流量了嘛。
所有就找到了TrafficStats这个类,用getUidRxBytes这个方法来查找我这个程序使用的流量。这个方法需要传递一个UID(进程ID)
下面是通过程序包名来转换UID的方法 本身TrafficStats.getUidRxBytes查找出来的是小b,所以要除以1024来转换为KB。
但是这个方法统计的流量是从开机一直到关机的流量,不能实现我所想达到的“显示视频加载速度”的要求。
于是我想到了倒计时的原理,我们能不能让他每一秒都运行一次,用上一秒的流量减去下一秒的流量不就能知道每一秒视频缓冲的大小了吗! 实例化一个timer,在新建一个TimerTask处理我们的代码,timer.schedule(task, 1000,1000)就是在一秒之后执行TimerTask 中的代码,而且1秒循环一次。因为TimerTask 是一个异步线程,所以要新建一个Handler来获取这个值 最后把这个值显示到progressBar中!
下面是效果图,显示的值和360手机卫士的流量浮框是一样的!
videoview的getBufferPercentage:这个方法是获取视频加载的百分比,但是不能转换为KB/S,而且视频已经播放出来了才能出发这个事件,一般用来设置seekBar。
MediaPlayer的setOnBufferingUpdateListener:和getBufferPercentage方法一样。
也有人说可以用MediaPlayer.MediaPlayer:这个方法中的MEDIA_INFO_DOWNLOAD_RATE_CHANGED来监听下载速度。但是我找了半天也没有,我用的是ANDROID2.2.
都不行,然后我就想到了流量监控,不是就能知道在视频缓冲的时候用了多少流量了嘛。
所有就找到了TrafficStats这个类,用getUidRxBytes这个方法来查找我这个程序使用的流量。这个方法需要传递一个UID(进程ID)
下面是通过程序包名来转换UID的方法 本身TrafficStats.getUidRxBytes查找出来的是小b,所以要除以1024来转换为KB。
但是这个方法统计的流量是从开机一直到关机的流量,不能实现我所想达到的“显示视频加载速度”的要求。
于是我想到了倒计时的原理,我们能不能让他每一秒都运行一次,用上一秒的流量减去下一秒的流量不就能知道每一秒视频缓冲的大小了吗! 实例化一个timer,在新建一个TimerTask处理我们的代码,timer.schedule(task, 1000,1000)就是在一秒之后执行TimerTask 中的代码,而且1秒循环一次。因为TimerTask 是一个异步线程,所以要新建一个Handler来获取这个值 最后把这个值显示到progressBar中!
下面是效果图,显示的值和360手机卫士的流量浮框是一样的!
转载:http://www.apkbus.com/android-123796-1-1.html
编辑
0 0
- Android视频播放器缓冲时流量显示的实现方式
- Android视频播放器缓冲时流量显示的实现方式
- Android播放视频的方式
- android实现视频播放的几种方式
- Android 实现视频播放的两种方式
- android 简易视频播放器的实现
- android 视频播放器的实现
- Android视频播放总结: 三种播放视频的方式
- 三种方式实现视频的播放
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- android实现视频播放器
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- STL源码剖析 - 第4章 序列式容器 - heap
- Android中在XML文件里@+id/和@id/的区别
- VC环境下Debug版本和Release版本的根本区别
- IOS 整体框架类图值得收藏
- ReentrantLock和synchronized锁机制分析
- Android视频播放器缓冲时流量显示的实现方式
- 蛋疼的缺少“;”的调试方法
- 单例模式的七种写法
- 导入代码时eclipse的src目录变为包名
- DES JAVA平台版本
- js的两种遍历的区别
- 用代码快速构建selector的工具类SelectorHepler
- iOS截取屏幕(屏幕截图)
- Linux进程的睡眠和唤醒简析