在利用Android进行音频视频开发中,有时需要用到进度条,用到进度条则会考虑到进度条的更新,接下来,介绍一种最近开发中遇到的一种比较简单的进度条更新方法。

这个方法利用了Handler,所以首先需要熟悉Handler 的操作。

所以下面先用一个简单的例子来介绍Handler 的用法:

87ab046a6cd0

87ab046a6cd0

底层原理暂不探究,我们先来看看如何实现今天的内容。

1. 我们首先在Activity中声明一个final变量作为Handler的what值,通常利用what值来处理不同的消息。

87ab046a6cd0

2.接着,获取音频或者视频的时间,包括当前时长以及总时长,然后设置进进度条seekbar中:

87ab046a6cd0

这里应注意,在视频为开始之前获取到的视频总长度为-1,因此在这里做了设置。

3. 然后我们监听进度条的改变,在这里有3个方法:

首先是onseekbarchanger:

87ab046a6cd0

在这里应注意,由于我们进度条是不断更新的,我们做的是一个死循环Handler,不断发送消息从而达到更新,因此我们需要先移除掉所有的消息。

1)所以在这里removemessage,removeCallback

2)然后在进行更新操作,在run方法中进行更新操作,利用seekTo方法,更新算法可依据图片。

3)最后将消息发送出去,在这里采用post发送。

接下来是另外两个监听方法:

87ab046a6cd0

一样的操作,不多做解释。

最后是主Activity的操作:

87ab046a6cd0

在这里通过what值处理消息,在处理消息中同时发送消息给自身。

至此,完成所有工作,一个简单的进度条不断更新~

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐