一、疑问
1.Android系统从读取音频文件到声音从扬声器输出,经历了什么过程?
2.通话过程中,调节音量,经历了什么过程?
2.通过什么控制音频是通过Speaker输出,还是耳塞输出?
3.音量是由什么控制的?
4.若扩增音频设备需要处理哪些工作?
二、问题讨论
(1)Android系统从读取音频文件到声音从扬声器输出,经历了什么过程?
Audio系统主要提供两个方面的功能:放音(Play)和录音(Recorder)。
以放音为例,从读取音频文件到声音从设备输出会经历以下阶段:
应用程序Media Player App 启动;调用Java层的android.media.AudioTrack类,AudioTrack通过JNI调用libmdia库提供的接口实现;AndioFinger实现了libmdia库的接口 ;往下就是一个硬件抽象层,它可以基于ALSA和SSO音频驱动实现声音播放。
AudioSystem负责Audio系统综合管理功能,AudioTrack负责播放功能,而AudioRecorder负责录音功能;
(2) 通话过程中调节音量,经历了什么过程?
[参考]
源码分析
http://blog.youkuaiyun.com/DroidPhone/archive/2010/10/14/5941344.aspx
http://blog.youkuaiyun.com/DroidPhone/archive/2010/10/19/5951999.aspx
http://blog.youkuaiyun.com/DroidPhone/archive/2010/10/18/5949280.aspx
http://blog.youkuaiyun.com/Innost/archive/2011/01/09/6125779.aspx
http://blog.youkuaiyun.com/Innost/archive/2011/01/15/6142812.aspx
应用层
http://blog.youkuaiyun.com/hellogv/archive/2010/11/22/6026455.aspx
http://4225953-163-com.javaeye.com/blog/663694
音频系统架构
http://www.kandroid.org/android_pdk/audio_sub_system.html
http://blog.youkuaiyun.com/maxleng/archive/2010/05/14/5593759.aspx
音量调节
http://forest606.blog.163.com/blog/static/134450089201001922840481/
http://quanminchaoren.javaeye.com/blog/937050