没有合适的资源?快使用搜索试试~ 我知道了~
Android音频详解.pdf
5星 · 超过95%的资源 需积分: 1 191 下载量 11 浏览量
2017-11-28
16:19:38
上传
评论 10
收藏 1.25MB PDF 举报
温馨提示
试读
123页
这个文档是我整理别人博客的,写的非常的不错,通俗易懂,相对来说还是比较全面,讲了linux下的声卡,Android音频 , AudioPolicyService, AudioFlinger, AudioTrack这些都有详细的讲解,然后我也做了书签,方便查阅。
资源推荐
资源详情
资源评论
第 1 章 音频系统
转载请注明:LXS,
http://blog.csdn.net/uiop78uiop78/article/details/8787779
对于一部嵌入式设备来说,除了若干基础功能外(比如手机通话、短信),最重
要的可能就是多媒体了——那么一个最简单的问题,什么是多媒体呢?
这个术语对应的英文单词是“Multi-Media”,直译过来就是多媒体。名称就很
好地解释了它的含义,我们引用 Wikipedia 上对其的详细定义:
Multimedia is media and content that uses a combination of
differentcontent forms. This contrasts with media that use only
rudimentary computerdisplays such as text-only or traditional forms of
printed or hand-producedmaterial. Multimedia includes a combination
of text, audio, still images,animation, video, or interactivity content
forms.
换句话说,多媒体是各种形式的媒体(比如文本、音频、视频、图片、动画等等)
的组合。可以说,它是一款产品能否在众多“同质化”严重的市场上脱颖而出的
关键。另外,由于不同的产品在音频处理、视频解码等芯片方面或多或少都存在
差异,原生态的 Android 系统不可能覆盖市面上的所有硬件方案,所以这部分
功能的移植与二次开发就成了设备研发中的重头戏——当然,Android 系统在
设计之初就充分考虑到了这点,它提供了一整套灵活的多媒体解决方案,以应对
厂商的定制化需求。
对于应用开发人员来说,最熟悉最常用的就是 MediaPlayer 和 MediaRecorder,
而深藏在这两个类之间的实现细节却鲜有人知。这也是 Android 的一大优点—
—高度封装,让各类开发人员可以把精力放在自己“需要做的事情上”,各司其
职,细化分工,从而极大的提高了产品的开发效率。
不过,这种封装也同时带来了一些代价。比如系统异常庞大,各种类定义、C++
库、Java 封装等等让人目不暇接,这给我们剖析多媒体系统带来了不少障碍。
为此,我们特别选取其中的音频实现(其中大部分又以音频回放为主),通过有重
点、深入的分析音频系统的实现,来为大家学习 Android 多媒体系统打开一个
缺口。
本章的内容编排是由下而上的,即从最底层的基础知识、框架实现讲起,再逐步
扩展延伸到上层应用
· 音频的基础知识
理解音频的一些基础知识,对于我们分析整个音频系统是大有裨益的。它可以让
我们从实现的层面去思考,音频系统的目的是什么,然后才是怎么样去完成这个
目的
· AudioFlinger、AudioPolicyService 和 AudioTrack/AudioRecorder
抛开 MediaPlayer、MediaRecorder 这些与应用开发直接关联的部分,整个音
频系统的核心就是由这三者构建而成的。其中前两个都是 System Service,驻
留在 mediaserver 进程中,不断地处理 AudioTrack/AudioRecorder 的请求。
音频的回放和录制从大的流程上看都是相似的,所以我们侧重于对 AudioTrack
的分析
· 音频的数据流
数据流处理是音频系统管理的一大重点和难点,至少有如下几点是需要充分考虑
的:
Ø 如何决定音频流的路径
通常一台设备会有多种音频设备,而且同一时间内系统也很可能会播放多种音频,
我们需要将这些音频流与对应的设备建立关联,并做好全局管理
Ø 如何保证音频流以有效的速度传输到音频设备
显然,数据太快或者太慢都会是缺陷
Ø 跨进程的数据传递
举个例子,从 Apk 应用程序创建一个 MediaPlayer,到音频真正从设备中回放
出来,这个过程涉及到多个进程间的通信,如何在这些进程间做好数据传递,也
是我们所关心的
· 音频系统的上层建筑
在理解了音频系统的实现核心后,我们再从上层应用的角度来思考,相信会有不
一样的收获
1.1 音频基础
1.1.1 声波
从物理学的角度来说,声波是机械波的一种。
机械波(MechanicalWave)是由机械振荡产生的,它的传播需要介质的支持。它
有如下特点:
l 介质本身并不会随着机械波不断地前进
比如我们抖动一条绳子产生的绳波,绳子上的某个点只是在一定范围内做上下运
动,没有因为波的传递而脱离绳子。因而机械波是能量的传递,而不是质量的传
递
l 在不同的介质中,传播速度是不一样的
那么,作为机械波的一种,声音有哪些重要属性呢?
l 响度(Loudness)
响度就是人类可以感知到的各种声音的大小,也就是音量。响度与声波的振幅有
直接关系——理论上振幅越大,响度也就越大
l 音调(Pitch)
我们常说某人唱高音很好,或者低音很棒,这就是音调。音调与声音的频率有关
系——当声音的频率越大时,人耳所感知到的音调就越高,否则就越低
l 音色(Quality)
同一种乐器,使用不同的材质来制作,所表现出来的音色效果是不一样的,这是
由物体本身的结构特性所决定的——它直接影响了声音的音色属性。同样的道
理,不同的演唱者因为他们的发声部位有差异,所以才造就了更种嗓音特色的音
乐才子
声音的这几个属性,是所有音频效果处理的基础。任何对音频的调整都将反应到
这些属性上,在我们分析源码时可以结合起来思考。
1.1.2 音频的录制、存储与回放
上面的多媒体定义还从侧面反映出一个结论,即 Multi-Media 并不是专门为计
算机而生的——只不过后者的出现极大地推动了它的发展。那么和传统的多媒
体相比,计算机领域的多媒体系统,会有哪些区别呢?
一个很显然的问题是,我们如何将各种媒体源数字化呢?比如,早期的音频信息
是存储在录音带中的,以模拟信号的形式存储。而到了计算机时代,这些音频数
据必须通过一定的处理手段才可能存储到设备中,这是我们在数字化时代会遇到
的一个常见问题。下面这个图很好地描述了音频从录制到播放的一系列操作流程:
图 13-1 音频的录制、存储和回放
引用自 http://en.wikipedia.org/wiki/File:A-D-A_Flow.svg
录制过程:
· 首先,音频采集设备(比如 Microphone)捕获声音信息,初始数据是模拟
信号
· 模拟信号通过模-数转换器(ADC)处理成计算机能接受的二进制数据
剩余122页未读,继续阅读
资源评论
- liuyklulu2019-05-28看着不错,下下来看看。
- cpuieng2019-01-29整理的博客,感觉还可以
qq670490118
- 粉丝: 4
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功