Android audio
文章平均质量分 77
这歌声无聊可是辉煌
这个作者很懒,什么都没留下…
展开
-
android使用Alsa Aloop录制系统内部声音
soc硬件上如果支持loopback功能,可以直接使用audiorecord或tinyalsa的接口以标准的形式去录音2.使用remote submix使用REMOTE_SUBMIX形式在录音的时候的时候...原创 2022-04-24 19:12:49 · 4288 阅读 · 1 评论 -
usb audio hal层进行重采样——记录一次解决问题的思路历程
作为码农,一直都觉得无论什么bug,都是发现问题,分析问题,解决问题的过程,解决的问题的思路,都是想方设法获得更多信息加以猜想验证,方法论拓展起来也是一门学问,我说不上来太多总结的东西,倒是最近遇到的一个bug,觉得很具有分析问题的代表性,记录下来也算有意义。问题是客户使用一个第三方开发的语音识别apk,使用一款usb摄像头在我们平台无法唤醒,而在对比机器上可以唤醒,而另外一款同品牌不同型号的摄像头两个平台都可以唤醒。这个问题给到我,第一反应看看什么方式录音,录音线程从audioflinger到ha原创 2021-03-05 18:05:24 · 1048 阅读 · 0 评论 -
audio_policy_configuration.xml解读与配置
audio_policy_configuration.xmlxml中 的<modules>对应每一个audio hal 的so,module中列出的mixPorts,devicePorts和routes解析之后完整的描述了音频的路由规则,module name。支持“primary”(用于车载使用场景)、“A2DP”、“remote_submix”和“USB”。模块名称和相应音频驱动程序应编译到audio.primary.$(variant).so中。 devicePorts。包...原创 2021-01-20 20:11:35 · 5612 阅读 · 1 评论 -
Android原生音量设置和计算
Android原生的音量调整都是调整软件音量,也就是对于解码后的pcm数据乘以一定的系数,范围0~1.0,常见的概念有:Track volume: 单个AudioTrack的音量,使用时只影响该AudioTrack的音量,不会对其他AudioTrack造成影响,播完之后也就结束。接口为:status_t AudioTrack::setVolume(float left, float right);stream volume:设置某一stream的音量,这是系统中最常见的音量设置方式,通常都是设置..原创 2020-12-17 16:40:19 · 2684 阅读 · 0 评论 -
AudioTrack与AudioFlinger的sharebuffer
AudioTrack作为音频数据的生产者,AudioFlinger是消费者,会有一块共享内存用于传输pcm数据,这块共享内存在AudioTrack创建时候就开辟好,主要就是在AudioTrack的set方法,该方法中调用了createTrack_l创建IAudioTrack,createTrack_l的作用主要就是创建出一块share buffer,供AudioTrack写入和AudioFlinger读取。同时还会根据是否在参数中传入callback函数来决定是否创建AudioTrackThr...原创 2020-11-27 16:34:07 · 869 阅读 · 0 评论 -
修改android系统默认采样率
通常使用android系统播放都会是一个固定的采样率输出,如果源是什么采样率,AudioFlinger都会将其重采样成同一个采样率的数据输出,一般平台都默认是44.1K或者48K,如果要修改成为其他采样率也比较简单,但需要注意几个地方。在android P平台上实验,只要改下/vendor/etc/audio_policy_configuration.xml中声明的primary output的采样率即可,比如原本默认是48k,现在修改为192k:当前改了这里只是audioflimger将会以1原创 2020-07-24 19:28:57 · 7701 阅读 · 0 评论 -
关于AudioEffect使用过程中的构造以及处理流程遇到的几个问题
最近遇到几个与AudioEffect相关的问题,在此记录下作为一个记忆总结android系统中如果想使用自己开发或者第三方的音效算法,有一种比较简单的办法就是放到hal层的out_write接口中,这样做优点是简单,方便快速集成。还有标准的做法就是做成android标准的音效接口,上层应用就可以像使用android自带的音效一样来调用自己所添加的自定义音效。如何实现自定义的音效库以及Aud...原创 2019-08-28 16:51:11 · 3550 阅读 · 1 评论 -
使用MediaReocord录音时遇到的问题
Android系统提供的录音接口有两种,MediaRecord和AudioRecord,AudioRecord录制的是未经过压缩的pcm格式音频数据,MediaRecord则可以设置编码器,录音压缩后的音频数据,同时录制出来的文件可以直接经过mediaplayer播放,当然MediaRecord接口底层也是使用AudioRecord的接口通过audioflinger从底层拿到数据。举例来看看两...原创 2019-04-09 16:10:29 · 631 阅读 · 0 评论 -
android audiorecord插上耳机录音由dmic切换到耳机录音
板子上带有一个dmic,和一个adc,不插耳机时audiorecord默认将打开dmic录音,插上耳机时自动切换到耳机录音。 这个场景是手机上太常见了,由于是tv和盒子的芯片,默认没有对这种场景的支持,按照android的音频架构不知道是否手机方案的实现对耳机和dmic(或其他方式板载麦克风)这两种设备都有完整的hal切换,这样切换流程就类似于从usb耳机切到蓝牙耳机...原创 2018-10-25 11:29:11 · 2757 阅读 · 1 评论 -
android拔掉耳机后音乐自动暂停
android系统在播放音乐的时候拔掉耳机通常音乐会自动暂停播放。遇到这样的需求,客户使用的是一个usb audio设备,希望拔掉后音乐不会自动暂停,而是继续播放,声音从speaker出来。以5.1的code为例,usb audio设备(usb 耳机等)拔出时\frameworks\base\services\usb\java\com\android\server\usbAudioService.原创 2016-01-13 17:46:28 · 6946 阅读 · 0 评论 -
Android新增一个音频类型及双音频输出的实现
android定义了很多种音频类型,完整定义在native层如下,system\core\include\system\audio.h文件中:/* Audio stream types */typedef enum { /* These values must kept in sync with * frameworks/base/media/java/android/原创 2016-01-18 18:08:44 · 16082 阅读 · 9 评论