Android AudioFrameWork中device的选择
手机上的音频模块是一个很复杂的系统,为了区分和管理,
android中引入了streamType, routing_strategy和device的概念
应用在播放音乐时,只需要将streamType设置下来,底层根据streamType选择routing_strategy, 再根据routing_strategy选择device,从而决定声音从那里发生,是扬声器,是听筒,还是耳机。
1 streamType简介
针对不同的音频流,有不同的类型
如:
通话中的voice音, 类型为 AUDIO_STREAM_VOICE_CALL
来电的响铃音, 类型为 AUDIO_STREAM_RING
播放视频的媒体音, 类型为 AUDIO_STREAM_MUSIC
闹钟的提示音,类型为 AUDIO_STREAM_ALARM
系统的通知音, 类型为 AUDIO_STREAM_NOTIFICATION
streamType的枚举值可参考 system/media/audio/include/system/audio-base.h 文件
2 routing_strategy 简介
通路策略与 streamType一一对应,不同的streamType的音,会采取不同的通路,
比如,
通话时,选择的streamType为 AUDIO_STREAM_VOICE_CALL,
那么根据voice_call,获取的 strategy是 STRATEGY_PHONE。
闹钟响铃时,选择的streamType为 AUDIO_S