在利用Android进行音频视频开发中,有时需要用到进度条,用到进度条则会考虑到进度条的更新,接下来,介绍一种最近开发中遇到的一种比较简单的进度条更新方法。
这个方法利用了Handler,所以首先需要熟悉Handler 的操作。
所以下面先用一个简单的例子来介绍Handler 的用法:
底层原理暂不探究,我们先来看看如何实现今天的内容。
1. 我们首先在Activity中声明一个final变量作为Handler的what值,通常利用what值来处理不同的消息。
2.接着,获取音频或者视频的时间,包括当前时长以及总时长,然后设置进进度条seekbar中:
这里应注意,在视频为开始之前获取到的视频总长度为-1,因此在这里做了设置。
3. 然后我们监听进度条的改变,在这里有3个方法:
首先是onseekbarchanger:
在这里应注意,由于我们进度条是不断更新的,我们做的是一个死循环Handler,不断发送消息从而达到更新,因此我们需要先移除掉所有的消息。
1)所以在这里removemessage,removeCallback
2)然后在进行更新操作,在run方法中进行更新操作,利用seekTo方法,更新算法可依据图片。
3)最后将消息发送出去,在这里采用post发送。
接下来是另外两个监听方法:
一样的操作,不多做解释。
最后是主Activity的操作:
在这里通过what值处理消息,在处理消息中同时发送消息给自身。
至此,完成所有工作,一个简单的进度条不断更新~