[发明专利]一种音频频谱和进度条叠加方法有效
| 申请号: | 201710356773.7 | 申请日: | 2017-05-19 |
| 公开(公告)号: | CN107220048B | 公开(公告)日: | 2021-04-20 |
| 发明(设计)人: | 纪广兴 | 申请(专利权)人: | 北京酷我科技有限公司 |
| 主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F3/0484;G06T13/00 |
| 代理公司: | 北京国标律师事务所 11753 | 代理人: | 姚克枫 |
| 地址: | 100080 北京市海淀区农大*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 音频 频谱 进度条 叠加 方法 | ||
本发明涉及一种音频频谱和进度条叠加算法,步骤1,基于View控件,自定义新的控件类mProgress,在构造函数处增加初始化方法;步骤2,进行频谱数据的接收、变换,准备好频谱绘制用图形对象,启动异步绘制循环调用;步骤3,进度条控件变化,通过外部播放器的回调,通过对setProgress、setSecondProgress的设定进行进度更新,或者:通过onTouchEvent函数,通过用户在控件上点击或触摸,改变Progress的位置;步骤4,通过复写onDraw方法,实现频谱数据与进度条数据的绘制;步骤5,停止频谱动画。本发明,在动画显示音频频谱数据的同时,在上面绘制和处理进度条的展示与交互,提供了更丰富的频谱动画显示效果。
技术领域
本发明涉及进度条显示技术领域,具体说是一种音频频谱和进度条叠加算法。
背景技术
在Android中,自定义控件,主要包括两类:
第一类,组合自定义控件,是指使用系统提供的各种界面控件,通过自定义封装成包括多个系统控件的自定义控件,代码在内部处理各子控件的交互,简化使用。
第二类,自绘制控件,是指通过继承系统提供的各种界面控件,在控件的测量、布局、绘制三个方法中,使用代码进行测量、绘制、处理交互事件的自定义控件。自绘制控件能提供比系统控件更新颖的界面、更丰富的交互方式。
频谱动画多在录音或播放音频时展示,通常是通过安卓自带的Visualizer类,获得频谱信息,得到一个byte数组。然后把这个byte数组转换成point数组,最后再根据这个point数组绘制点,就行了。但这种现有频谱动画显示效果缺乏美感,功能单一,人机交互过程有待进一步完善。
在播放音频时还会在交互界面给出进度条,并且可以通过拖动进度条实现播放进度的相应控制。进度条通常是在独立的区域进行显示,同样也是功能单一,人机交互过程有待进一步完善。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种音频频谱和进度条叠加算法,在动画显示音频频谱数据的同时,在上面绘制和处理进度条的展示与交互,提供了更丰富的频谱动画显示效果。
为达到以上目的,本发明采取的技术方案是:
一种音频频谱和进度条叠加算法,其特征在于,包括如下步骤:
步骤1,基于View控件,自定义新的控件类mProgress,在构造函数处增加初始化方法;
步骤2,进行频谱数据的接收、变换,准备好频谱绘制用图形对象,启动异步绘制循环调用;
步骤3,进度条控件变化,通过外部播放器的回调,通过对setProgress、setSecondProgress的设定进行进度更新,
或者:通过onTouchEvent函数,通过用户在控件上点击或触摸,改变Progress的位置;
步骤4,通过复写onDraw方法,实现频谱数据与进度条数据的绘制;
步骤5,停止频谱动画。
在上述技术方案的基础上,步骤1中,自定义新的控件类mProgress包括:
创建频谱绘制使用的Path对象wavePath,并设置相应参数,所述参数至少包括频谱数组容量等参数,
创建频谱变换使用缓存数组对象cacheFFTs,
创建两条贝赛尔曲线绘制使用的Paint对象mForePaint1,mForePaint2,
创建进度条绘制变量max、min、value,三个变量分别表示进度条最大值、最小值、当前值,所述自定义新的控件类mProgress使用这三个变量的换算值表示播放进度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京酷我科技有限公司,未经北京酷我科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710356773.7/2.html,转载请声明来源钻瓜专利网。





