![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 音频
飞_哥
这个作者很懒,什么都没留下…
展开
-
Android 耳机插拔流程源码跟踪浅析
Android 开发过程中,使用耳机控制拍照,控制音乐播放,控制打电话等,线控再到蓝牙控... 耳机也在不断升级,耳机插拔的程序这一块也在不断完善。因此,在定制开发过程中,阅读这部分流程代码是必修的功课了,至少首先的要搞清楚程序走的线路流程。下面结合我在实际工作过程中遇到的bug,需求定制等做个简单的总结。第一节,插拔耳机时,事件上报抓取事件命令:查看有哪些事件可以get转载 2017-06-05 11:16:26 · 1172 阅读 · 0 评论 -
Android 4.4 音量调节流程分析(二)
之前在Android 4.4 音量调节流程分析(一)里已经有简单的分析音量控制的流程,今天想接着继续分析下音量大小计算的方法。对于任一播放文件而言其本身都有着固定大小的音量Volume_Max,而在AudioPolicyManagerBase.cpp文件中音量调节可以理解为在Volume_Max的基础上乘以系数κ(0≤κ≤1)。 现在对AudioPolicyManagerBase.cpp中v转载 2017-07-12 09:49:41 · 660 阅读 · 0 评论 -
Android 4.4 音量调节流程分析(一)
最近在做Android Audio方面的工作,有需求是在调节Volume_Up_Key & Volume_Down_key时,Spearker or Headset每音阶的衰减变为3db左右。所以利用Source Insight分析Android源码中音量控制的流程,如有错误,欢迎指正,谢谢! 以下是调节音量的流程: Step_1.首先在调节机台Volume_Up_Key转载 2017-07-12 09:51:00 · 595 阅读 · 0 评论 -
深入剖析Android音频之AudioTrack
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]播放声音可以用MediaPlayer和AudioTrack,两者都提供了Java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在转载 2017-07-14 14:12:54 · 1072 阅读 · 0 评论 -
Android 4.4KitKat AudioRecord 流程分析
Android是架构分为三层:底层 Linux Kernel中间层 主要由C++实现 (Android 60%源码都是C++实现)应用层 主要由JAVA开发的应用程序 应用程序执行过程大致如下: JAVA应用程序产生操作(播放音乐或停止),然后通过JNI调用进入中间层执行C++代码,中间层处理后可能需要硬件产生动作的,会继续将操作传到Linux Kernel,Ker转载 2017-07-06 15:28:25 · 717 阅读 · 0 评论 -
第十八篇 ANDROID的声音管理系统及服务
声音管理系统用来实现声音的输入和输出、声音的控制和路由等功能,包括主和各种音源的音量调节、声音焦点控制,声音外设的检测和状态管理,声音源输入和输出的策略管理、音效的播放、音轨设置和播放、录音设置和启动等功能。整个声音管理系统相关类图如下:主要由Java端的系统服务AudioService及两个本地服务声音输入输出策略管理服务AudioPolicyService及声音输出投射服务AudioF转载 2017-07-19 16:00:54 · 951 阅读 · 0 评论 -
AudioRecord工作流程(蓝牙a2dp的状态下)
由于要实现a2dp的sink功能。所以大致看了下af和aps的结构。以下是学习摘要。在看文章前,我们先来看下AudioFlinger和AudioPolicyService这两个东西,AudioFlinger是具体干活的,包括后者调用的具体处理;AudioPolicyService则主要进行输入输出设备通道选择策略的处理。那么Android设备是如何得知当前设备各种情景下有哪转载 2017-07-19 16:22:29 · 1471 阅读 · 0 评论 -
Android Audio System
第7章 Android的Audio系统本章介绍Android的音频系统内容,主要是音频的输入/输出环节,不涉及编解码的内容(音频系统从驱动程序、本地框架到Java框架都具有内 容)。本章介绍Audio系统各个层次的内容、Audio硬件抽象层的实现。在学习本章的过程中,读者应重点关注以下内容:Audio系统结构(知识性内容)在Java中调用Audio系统的方式(知识性内容)Aud转载 2017-08-09 10:53:18 · 1002 阅读 · 0 评论 -
视音频编解码
http://blog.csdn.net/leixiaohua1020/article/list/3转载 2017-08-11 13:42:16 · 297 阅读 · 0 评论 -
深入剖析Android音频之AudioTrack
目录(?)[-]AudioTrack构造过程构造native AudioTrack构造AudioTrackJniStorage初始化AudioTrack获取音频输出创建AudioTrackThread线程申请Track构造Client对象创建Track对象播放声音可以用MediaPlayer和AudioTrack,两者都提供了Java API供应用开转载 2017-08-14 09:36:14 · 696 阅读 · 0 评论 -
Android 音频系统:从 AudioTrack 到 AudioFlinger
1. Android 音频框架概述Audio 是整个 Android 平台非常重要的一个组成部分,负责音频数据的采集和输出、音频流的控制、音频设备的管理、音量调节等,主要包括如下部分:Audio Application Framework:音频应用框架 AudioTrack:负责回放数据的输出,属 Android 应用框架 API 类AudioRecord:负责录音转载 2017-06-22 17:31:07 · 1058 阅读 · 0 评论 -
ANDROID音频系统散记之五:如何绕开多媒体音轨的重采样
两年前,Android智能手机的音质还广受诟病,那时不仅不能与专业影音设备相提并论,连48KHz采样率的声音都要强制成转换成44.1KHz输出,这种非线性重采样极大地损坏了音质,加剧互调失真。对于此的较完整分析见:http://www.soomal.com/doc/10100002164.htm后来,android智能手机竞争越来越大,同质化也越来越严重。因此,音质的提升成了一个重大卖点,转载 2017-06-22 17:17:27 · 938 阅读 · 0 评论 -
为android系统添加USB AUDIO设备的放音和录音功能
转载请注明出处:http://blog.csdn.net/adits/article/details/8242146开发环境简介1. 主机系统: Unbuntu10.102. android系统版本: 4.0.3(Linux kernel 3.0.8)综述android的音频系统非常庞大复杂:涉及到java应用程序,java框架层,JNI,本地服务(AudioF转载 2017-06-05 14:24:24 · 10291 阅读 · 1 评论 -
Android4.2耳机插拔检测实现方法
转自:http://blog.csdn.NET/fengying765/article/details/383014831. 耳机检测的硬件原理一般的耳机检测包含普通的耳机检测和带mic的耳机检测两种,这两种耳机统称为Headset,而对于不带mic的耳机,一般称之为Headphone。对于Headset装置的插入检测,一般通过Jack即耳机插座来完成,大致的原理是使用带检测机械结转载 2017-06-05 15:26:23 · 3758 阅读 · 0 评论 -
Android Audio 音频输出设备切换
扬声器输出和耳机输出是音频系统最基本的音频输出通路,实际应用中用户可根据自己需要随意切换,具体表现是通过插入耳机选择耳机输出,拔出耳机选择默认的扬声器输出。图5-13 耳机插拔检测 如图5-13所示,扬声器与耳机输出切换的实现思路是内核底层驱动实现耳机插拔检测,然后通过uevent通信机制通知Java框架层,Java框架层通过Intent机制发转载 2017-06-05 15:27:22 · 4102 阅读 · 0 评论 -
音频架构
http://blog.csdn.net/uiop78uiop78/article/list/1转载 2017-06-05 15:34:35 · 529 阅读 · 0 评论 -
Android音频系统之AudioPolicyService
1.1 AudioPolicy Service在AudioFlinger小节,我们反复强调它只是策略的执行者,而AudioPolicyService则是策略的制定者。这种分离方式有效地降低了整个系统的藕合性,而且为各个模块独立扩展功能提供了保障。1.1.1 AudioPolicyService概述汉语中有很多与策略有关联的俗语,比如“因地制宜”、“具体问题具体分析”;战争中只遵转载 2017-06-05 15:38:31 · 399 阅读 · 0 评论 -
Android 录音数据传输
今天来看看Android中的录音数据是怎么来的。从AudioRecord开始看吧。AudioRecord中可以取得录音数据的接口是:AudioRecord::read。首先调用函数obtainBuffer取得录音数据的地址。然后用memcpy将录音数据copy出来。看样子,数据来源是obtainBuffer函数了。来看看函数AudioRecord转载 2017-06-20 11:01:29 · 540 阅读 · 0 评论 -
Android 录音数据传输
MediaPlayer那边就不看了,从AudioTrack开始研究。1、AudioTrack::write函数调用函数obtainBuffer获取到一块buffer,然后把传入的数据copy到获取的buffer中。2、AudioTrack::obtainBuffer函数该函数的主要功能就是对传入的audioBuffer进行赋值。看看audioBuffer的类型:转载 2017-06-20 11:03:36 · 774 阅读 · 0 评论 -
Android源码分析:录音AudioRecording
Android源码分析:录音AudioRecording红狼博客Auido Record录音功能的使用,在Java层可以调用Android的SDK中的API—-android.media.AudioRecord来实现;在native层,可以调用C++中的AudioRecord类。调用关系结构图如下: AudioRecordAudioReco转载 2017-06-21 15:14:50 · 1667 阅读 · 0 评论 -
ANDROID音频系统散记之四:4.0音频系统HAL初探
一、代码模块位置1、AudioFlingerframeworks/base/services/audioflinger/ +-- Android.mk +-- AudioBufferProvider.h +-- AudioFlinger.cpp +-- AudioFlinger.h +-- AudioMixer.转载 2017-06-22 17:01:29 · 514 阅读 · 0 评论