android 4.4 audio 框架

android 4.4 本地播放 一首mp3的流程

以一首mp3的播放流程来理解audio 架构与代码流程。

播放命令
通过网络adb连接板子 cmd中输入:
am start -a "android.intent.action.VIEW" -t "audio/mp3" -d "file:///data/mytest/zl_cd.mp3"

1.
创建播放器
AmSuperPlayer
AwesomePlayer

new AudioPlayer


2.
音频文件探测
MP3Extractor

3.
OMXCodec
MP3采用软件的方式进行解码
//SoftMP3::onQueueFilled             
//notifyEmptyBufferDone(inHeader);    
//notifyFillBufferDone(outHeader);

4.
AudioTrack 播放线程    
AudioTrack 获取到软件解码后的数据,并写入audioflinger的buff中
//AudioTrack->binder->audioflinger

AudioTrack::set
AudioTrack::createTrack_l

AudioFlinger::createTrack


AudioFlinger::PlaybackThread::threadLoop()
AudioFlinger::PlaybackThread::threadLoop_write()  audioflinger Threads.cpp
ssize_t framesWritten = mNormalSink->write(mMixBuffer + offset, c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值