
音频系统
文章平均质量分 73
renshuguo123723
这个作者很懒,什么都没留下…
展开
-
android 音量调节
音量调节分3个部分,分别是master volume(硬件音量,控制声卡),stream volume(流音量)和track volume(app音量)。app音量大小公式:app_mix = master_volume * stream_volume * track_volume;其中master_volume,stream_volume和track_volume都是百分比,1表示音量调到最大;音量最大分贝是0db,表示没有衰减,也就是音源音量;1.stream volume(使用滑动.原创 2021-10-15 14:11:02 · 4191 阅读 · 1 评论 -
音频相关概念
1.音频硬件设备也称为module,定义在services/audiopolicy/config/audio_policy_configuration.xml:分别有primary,a2dp,usb,r_submix;配置文件中的每一个module都被描述为HwModule,保存在mHwModules中;2.output可以理解成是输出端设备,常用的输出端设备有:prmary_out,low_latency,deep_buffer,compress_offload,mutil_c原创 2021-07-05 00:01:21 · 974 阅读 · 0 评论 -
Engine::getDeviceForStrategyInt()解析
//audio_devices_t是int类型audio_devices_t Engine::getDeviceForStrategyInt(routing_strategy strategy, DeviceVector availableOutputDevices, DeviceVector availableI.原创 2021-04-24 22:50:02 · 1469 阅读 · 0 评论 -
音频输出设备的选择
场景:使用AudioTrack播放一段音频,streamtype是AUDIO_STREAM_MUSIC;跟踪音频输出设备选择的流程,代码会走到这里:1.frameworks\av\media\libaudioclient\AudioTrack.cppstatus_t AudioTrack::createTrack_l(){ ...... //假设此时播放的是音乐,那这里的streamType是Music类型,所以属性attr为NULL audio_attri原创 2021-04-18 23:18:00 · 3227 阅读 · 0 评论 -
android音频系统(1):AudioTrack
前言:平时开发中经常碰到录音器和音乐播放器,录音器和音乐播放器是音频系统在应用层最直观的体现;android原生音乐器在播放音乐时用的技术是MeidaPlayer,我一直想知道这个MeidaPlayer是怎么播放音乐的,所以对android的音频系统进行了剖析;剖析音频系统,肯定是JAVA层和Native层一起分析了;首先分析的是AudioTrack,它是Audio系统对外提供的AP...原创 2018-12-19 18:17:59 · 2708 阅读 · 0 评论 -
android音频系统(4):AudioService之音量管理
前言:AudioService这个系统服务包含或者使用了几乎所有与音频有关的内容,AudioService是音频系统在java层的大本营;android音频系统,分为两个部分:数据流和策略;数据流:描述了音频数据从数据源流向目的地的流程,之前我们分析的AudioTrack,AudioFlinger就是数据流;策略:管理及控制数据流的路径与呈现方式,之前我们分析的AudioPolic...原创 2018-12-21 16:56:21 · 11331 阅读 · 2 评论 -
android音频系统(5):AudioService之音频焦点
前言:上一节我们分析了AudioService对音量的管理,这一节来看下AudioService对音频焦点的处理,也就是音频系统中的AudioFocus机制,它用来处理多个音频不合理的同时播放的糟糕后果;在分析AudioFocus机制之前,我们首先先来理解一下这个机制;①首先,AudioFocus机制只是android建议我们去执行的一个规则,并不是一定要去遵循的;你设计的音频播放...原创 2018-12-22 14:59:02 · 3157 阅读 · 1 评论 -
android音频系统(7):通话过程中的音频输出设备切换
前言:由于通话比较特殊,Android对于通话过程中音频输出设备的切换做了特殊处理,它在上层也是通过切换音频播放状态来完成切换操作的,android用CallAudioState来封装通话过程中的音频播放状态;1.CallAudioState解析CallAudioState的属性CallAudioState.javapublic static final int ROUTE_EA...原创 2019-01-24 21:26:31 · 8406 阅读 · 0 评论 -
android音频系统(6):AudioService之音频输出通道切换
前言:音频输出的方式有很多种,外放即扬声器(Speaker)、听筒(Telephone Receiver)、有线耳机(WiredHeadset)、蓝牙音箱(Bluetooth A2DP)等,电话免提、插拔耳机、连接断开蓝牙设备等操作系统都会自动切换Audio音频到相应的输出设备上。我们知道,音频输出通道切换有些是系统自动切换的,但是有些自动切换并不是我们想要的,如:音乐App在听歌时,需要...原创 2019-01-23 11:57:04 · 21914 阅读 · 7 评论