最近有一个项目,来测试发声音准的符合度;要用图形实时展示出来,
项目思路
首先画这个曲线是需要一个横轴和纵轴的;既然是画声波图,显然那横轴就是时间轴,从开始计时;纵轴就是因的频率值。
在时间长度够大的时候,图形是需要移动的;这里我首先考虑到的是分两个canvas去实现;其中一个负责绘制声波图称为canvasA,另外一个负责绘画一些装饰和展示这个音频图称为canvasB;原因是声波图可能是无限长,所以根据录制的音频的时间长度来设定宽度。而canvasB宽度就是视图的宽度;随着时间的推移,canvasA在canvasB上向左平移,使用已录制的时间来做移动的距离,并不是让他自己根据轮询去自己移动,这样移动的和画的点就可控了;
由于需要配置示例和评测的状态条,所以在配置时需要将此部分根据需要来输入到功能中,画在canvasA上。
至此该功能只需要抛出一个配置,开始,监听声波点,和结束的接口;基本上就成型了;
由于还有一些时间点的获取,所以我再此功能总加入了监听时间的回调方法,实时回调当前进度,以毫秒为单位;
由于是内嵌到App的;所以有一部分功能是和app交互的;交互时业务上需要注意交互的时间延迟处理
差不多思路就是这样,根据这个思路下来,比较容易着手这个项目。
若需要此功能代码;可以留言。