一、疑问 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.csdn.net/DroidPhone/archive/2010/10/14/5941344.aspx http://blog.csdn.net/DroidPhone/archive/2010/10/19/5951999.aspx http://blog.csdn.net/DroidPhone/archive/2010/10/18/5949280.aspx http://blog.csdn.net/Innost/archive/2011/01/09/6125779.aspx http://blog.csdn.net/Innost/archive/2011/01/15/6142812.aspx
应用层 http://blog.csdn.net/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.csdn.net/maxleng/archive/2010/05/14/5593759.aspx
音量调节 http://forest606.blog.163.com/blog/static/134450089201001922840481/ http://quanminchaoren.javaeye.com/blog/937050 (stefzeus) |