3、音色 音色是一种抽象的东西,波形决定了声音的音色。声音因不同发声物体材料而具有不同特性,波形是把这个抽象特性直观的表现出来。典型的音色波形有方波,锯齿波,正弦波,脉冲波等。
4、采样 所谓采样,即按一定的采样频率将模拟信号变成时间轴上离散的抽样信号的过程。原则上采样频率越高,声音的质量也就越好,声音的还原也就越真实。 采样率即每秒从模拟信号中提取并组成离散信号的采样个数,用赫兹(Hz)来表示。说到采样率有一个不得不提的著名定律,即香农(Shannon)/奈奎斯特(Nyquist)采样定律,该定律表明采样频率必须大于或等于所传输的模拟信号的最高频率的2倍,才能不失真地恢复模拟信号。
5、 量化 前面采样得到的抽样信号虽然是时间轴上离散的信号,但仍然是模拟信号,其采样值在一定的取值范围内,可有无限多个值,必须采用“四舍五入”的方法把样值分级“取整”,使一定取值范围内的样值由无限多个值变为有限个值,这一过程称为量化。 6、编码 量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。简单高效的数据系统是二进制码系统,因此,应将十进制数字码变换成二进制编码,这种把量化的抽样信号变换成给定字长(量化位数)的二进制码流的过程称为编码。 编码方式种类非常多,其对比可见 Comparison of audio coding formats,PCM音频格式编码常见有四种:PCM(Linear PCM)、ADPCM(Adaptive differential PCM)、 A-law(A律13折线码)、μ-law(μ律15折线码),最简单的当然是下图所示的LPCM(示例为4bit),这是一种均匀量化编码,广泛用于 Audio CD, AES3, WAV, AIFF, AU, M2TS, VOB中。
模拟信号到数字信号的过程
同过上面的图可以看出,模拟信号通过pam后生成采样信号,然后通过量化生成了-127到+127之间的数据,最后通过二进制存放。
Visualizer
有了上面的基础知识,可以知道音乐可视化其实可以通过量化后的数据去生成音乐的可视化内容,google官方提供了Visualizer类来帮助实现音乐可视化,这个类主要是可以返回音乐的Waveform data和Frequency data 1、Waveform data waveform data 波形数据,就是上面图中模拟信号经过处理后的数据,google提供的是一个8bit的无符号数据。
2、Frequency data Frequency data 就是频率数据,频率数据是通过快速傅里叶转换,把时域上连续的信号(波形)强度转换成离散的频域信号(频谱)
Visualizer使用
1、获取实例
visualizer = new Visualizer(mediaPlayer.getAudioSessionId());
2、设置采样值
visualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
通过Visualizer.getCaptureSizeRange()这一底层实现的方法来返回一个采样值的范围数组,0为最小值128,1为最大值1024!采样值都为2的n次幂!
3、设置监听器
setDataCaptureListener(OnDataCaptureListener listener, rate,iswave,isfft )
先说后面三个参数:rate采样的频率,下边通过方法Visualizer.getMaxCaptureRate()返回最大的采样频率,单位为milliHertz毫赫兹,iswave是波形信号,isfft是频域信号。 第一个参数OnDataCaptureListener接口,这里可以一个它的匿名内部类,然后它有两个回调方法:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后,如果大伙有什么好的学习方法或建议欢迎大家在评论中积极留言哈,希望大家能够共同学习、共同努力、共同进步。
小编在这里祝小伙伴们在未来的日子里都可以 升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰!!
不论遇到什么困难,都不应该成为我们放弃的理由!
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,需要一份小编整理出来的学习资料的关注我主页或者点击我的GitHub免费领取~
这里是关于我自己的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们可以看看~
opics/618156601)
这里是关于我自己的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们可以看看~
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。