Android-audio系统第一季.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android-audio系统第一季

Audio 系统研究第一季 先看看Audio 里边有主要有三个: AudioManager :这个主要是用来管理Audio 系统的 AudioTrack :这个主要是用来播放声音的 AudioRecord :这个主要是用来录音的 其中AudioManager 的理解需要考虑整个系统上声音的策略问题,例如来电话铃声,短信 铃声等,主要是策略上的问题。 AudioPolicyManager AudioPolicyService 的很大一部分管理工作都是在AudioPolicyManager 中完成的。包 括音频策略(strategy )管理,音量管理,输入输出设备管理。 1、音频策略管理 我想首先要搞清楚stream_type ,device ,strategy 三者之间的关系: • AudioSystem::stream_type 音频流的类型,一共有10 种类型 • AudioSystem::audio_devices 音频输入输出设备,每一个bit 代表一种设备,见 前面的说明 • AudioPolicyManager::routing_strategy 音频路由策略,可以有4 种策略 getStrategy(stream_type)根据stream type ,返回对应的routing strategy 值, getDeviceForStrategy()则是根据routing strategy ,返回可用的device。Android 把 10 种stream type 归纳为4 种路由策略,然后根据路由策略决定具体的输出设备。 释义: DTMF: dual-tone multifrequency 双音多频,由高频群和低频群组成,高低频群各包 含4 个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。 DTMF 信号有16 个编码。利用DTMF 信令可选择呼叫相应的对讲机 TTS :Text To Speech 的缩写,即“从文本到语音”、语音合成技术(Text To Speech) …… 2、声音管理 /** @hide Maximum volume index values for audio streams */ private int[] MAX_STREAM_VOLUME = new int[] { 5, // STREAM_VOICE_CALL 7, // STREAM_SYSTEM 7, // STREAM_RING 15, // STREAM_MUSIC 7, // STREAM_ALARM 7, // STREAM_NOTIFICATION 15, // STREAM_BLUETOOTH_SCO 15, // STREAM_FM 15, // STREAM_DTMF 15, // STREAM_TTS 7, // STREAM_SYSTEM_ENFORCED }; 由此可见,电话铃声可以有7 个级别的音量,而音乐则可以有15 个音量级别,java 的代码 通过jni ,最后调用AudioPolicyManager 的 initStreamVolume() ,把这个数组的内容 传入AudioPolicyManager 中,这样AudioPolicyManager 也就记住了每一个音频流的 音量级别。应用程序可以调用setStreamVolumeIndex 设置各个音频流的音量级别 , setStreamVolumeIndex 会把这个整数的音量级别转化为适合人耳的对数级别,然后通过 AudioPolicyService 的 AudioCommandThread ,最终会将设置应用到AudioFlinger 的相应的Track 中。 3、输入输出设备管理 音频系统为音频设备定义了一个枚举:AudioSystem::audio_devices ,例如: DEVICE_OUT_SPEAKER ,DEVICE_OUT_WIRED_HEADPHONE ,DEVICE_OU T_BLUETOOTH_A2DP ,DEVICE_IN_BUILTIN_MIC ,DEVICE_IN_VOICE_CALL 等等,每一个枚举

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档