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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值