[键入文字]
[键入文字]
Android
音频通路架构分析
[键入文字]
目录
1. 2. 3.
Abstract ..................................................................................................................................... 3 Introduction .............................................................................................................................. 3 ARM11侧audio通路设置 ....................................................................................................... 4 3.1 代码位置 ....................................................................................................................... 5 3.2 录音通路控制 ............................................................................................................... 6
3.2.1 AudioRecord创建 ............................................................................................. 6 3.2.2 AudioRecord start ............................................................................................ 11 ARM9侧audio通路设置 ....................................................................................................... 15 4.1 代码位置 ..................................................................................................................... 16 4.2 通路控制 ..................................................................................................................... 17
4.2.1 RPC&Snd Task .................................................................................................. 17 4.2.2 DEVMGR .......................................................................................................... 18 4.2.3 AFE(audio codec config) .................................................................................. 19 4.2.4 ADIE(ADIE codec config) .................................................................................. 21 ARM9侧audio通路添加 ....................................................................................................... 22 内部PA和外部PA的使用 ..................................................................................................... 26 Audio数据流 .......................................................................................................................... 27
4.
5. 6. 7.
[键入文字]
[键入文字]
1.
Abstract
主要是分析一下android平台音频通路的设置架构。
2. Introduction
音频架构在android系统中非常复杂,本节主要分析audio通路的设置,以Radio通路的设置为例,详细介绍一下ARM9和ARM11侧的audio通路如何设置。
从整体架构上分析,与audio通路设置相关的模块包括ARM11,ARM9,ADSP,MDSP,Codec,音频设备。其中控制信息主要集中在ARM11,ARM9,Internal Codec部分。以图中的audio control data的流向为主线,对audio通路的设置进行分析。 主要包含以下几部分:
? ARM11侧audio通路设置 ? ARM9侧audio通路设置 ? ARM9侧audio通路添加
[键入文字]
[键入文字]
3.
ARM11侧audio通路设置
FMRadioJava ApplicationAudioRecordFMRadioServiceAudioTrackJNIandroid_media_AudioRecordandroid_media_AudioTrackAudioRecordAudioSystemAudioTrackFrameworkAudioPolicyManagerBaseAudioPolicyServiceAudioFlingerAudio HALKernel/dev/msm_pcm_inAudioHardware/dev/msm_pcm_out/dev/msm_sndRPC Router FM采取了先录再放的机制来设置声音通路。如上图所示,总共包含以下几部分: JAVA应用层:包含FM的用户操作界面等,主要是FMRadio.java和FMRadioService.java. JNI层:主要用于连接java和c代码的中间层,主要是android_media_AudioRecord.cpp和android_media_AudioTrack.cpp。 Framework层:包含Audio通路的控制以及混音等操作。其中最主要的部分集中在AudioFlinger.cpp中。 Audio HAL层:硬件抽象层,其中包含streamIn和streamOut,与内核中的各个音频节点进行交互。 Kernel层:包括对音频通路控制设备,audio数据的输入输出设备的操作。
[键入文字]
[键入文字]
3.1
代码位置
JAVA Application程序路径: Packages/apps/fm
JNI程序路径:
Frameworks/base/core/jni/android_media_AudioRecord.cpp Frameworks/base/core/jni/android_media_AudioTrack.cpp
Framework程序路径:
Frameworks/base/media/libmedia/AudioRecord.cpp Frameworks/base/media/libmedia/AudioTrack.cpp
Frameworks/base/libs/audioflinger/AudioPolicyService.cpp
Frameworks/base/libs/audioflinger/AudioPolicyManagerBase.cpp Frameworks/base/libs/audioflinger/AudioFlinger.cpp Audio HAL程序路径:
Hardware/msm7k/libaudio/AudioHardware.cpp
Kernel程序路径:
Kernel/arch/arm/mach-msm/qdsp5/Snd.c Kernel/arch/arm/mach-msm/Audio_in.c Kernel/arch/arm/mach-msm/Audio_out.c
[键入文字]
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Android_Audio_深入分析在线全文阅读。
相关推荐: