Android Audio代码分析26 - Audio Strategy
在看示例代码 testPlaybackHeadPositionIncrease 的时候,我们对 play 函数进行了研究。
不过,当时对 Android 中声音竞争策略相关的内容,并没有详细分析。
今天就以 AudioTrack 的播放为引子,来仔细看看 Anroid 中各种声音是以什么样的策略来竞争的。
从 Java 侧类 AudioTrack 的 play 函数到函数 AudioFlinger::PlaybackThread::Track::start 之间的调用关系就不再叙述了。
在看示例代码 testPlaybackHeadPositionIncrease 的时候已经说明过了。
今天就从函数 AudioFlinger::PlaybackThread::Track::start 开始分析。
*****************************************源码*************************************************
**********************************************************************************************
源码路径:
frameworks\base\services\AudioFlinger.cpp
#######################说明################################
###########################################################
&&&&&&&&&&&&&&&&&&&&&&&总结&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
各种声音控制策略的实现主要在 Audio Policy Manager 中。
其中会根据 stream type 和当前的状态对各种 stream 的音量作必要的修改。
以达成以下的优先级效果:
Priority Strategy Type Stream Type
4 STRATEGY_PHONE VOICE_CALL
BLUETOOTH_SCO
3 STRATEGY_SONIFICATION RING
NOTIFICATION
ALARM
ENFORCED_AUDIBLE
2 STRATEGY_MEDIA SYSTEM
TTS
MUSIC
1 STRATEGY_DTMF DTMF
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
不过,当时对 Android 中声音竞争策略相关的内容,并没有详细分析。
今天就以 AudioTrack 的播放为引子,来仔细看看 Anroid 中各种声音是以什么样的策略来竞争的。
从 Java 侧类 AudioTrack 的 play 函数到函数 AudioFlinger::PlaybackThread::Track::start 之间的调用关系就不再叙述了。
在看示例代码 testPlaybackHeadPositionIncrease 的时候已经说明过了。
今天就从函数 AudioFlinger::PlaybackThread::Track::start 开始分析。
*****************************************源码*************************************************
**********************************************************************************************
源码路径:
frameworks\base\services\AudioFlinger.cpp
#######################说明################################
###########################################################
&&&&&&&&&&&&&&&&&&&&&&&总结&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
各种声音控制策略的实现主要在 Audio Policy Manager 中。
其中会根据 stream type 和当前的状态对各种 stream 的音量作必要的修改。
以达成以下的优先级效果:
Priority Strategy Type Stream Type
4 STRATEGY_PHONE VOICE_CALL
BLUETOOTH_SCO
3 STRATEGY_SONIFICATION RING
NOTIFICATION
ALARM
ENFORCED_AUDIBLE
2 STRATEGY_MEDIA SYSTEM
TTS
MUSIC
1 STRATEGY_DTMF DTMF
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&