8926音频播放流程

一、   android本身对播放流程就有一个很完善的控制,能够很好的理解AudioTrack服务的运作,对于理解和解决下行数据的处理有个很好的指导作用。

AudioRecord和AudioTrack是音频上行和下行的两大重要服务,本文主要针对下行AudioTrack服务进行流程的详细说明。AudioTrack服务启动之后会把数据传给AudioFlinger,之后会传给hal,最后会传给DSP到声卡然后播放出来。

 

 

 

二、具体代码流程如下:



AudioTrack::set

         

AudioSystem::getOutput

         

aps->getOutput

         

mpAudioPolic->get_output()

         

qap -> policy.get_output=ap_get_output                                    

                  

Qap->apm->getOutput()

         

Class AudioPolicyInterface
{audio_io_handle_t getOutput()}

         

Class AudioPolicyManagerBase:public AudioPolicyInterface

         

Class AudioPolicyManagerALSA:public AudioPolicyManagerBase

         

AudioPolicyManager::getOutput

         

Class AudioPolicyClinetInterface
{openOutput()}

         

Class AudioPolicyCompatClien:public AudioPolicyClinetInterface

         

AudioPolicyCompatClien::openOutput()

         

mServiceOps->open_output_on_module()

         

Open_output : aps_open_output
(AudioPolicyService.cpp)

         

Af->openOutput()

         

AduioFlinger::openOutput

         

hwDevHal->open_output_stream

         

Qadev->device.open_output_stream
=adev_open_output_stream

         

qadev->hwif->openOutputStream

         

AudioHardwareALSA::openOutputStream

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值