Android audio
ZhuJust
这个作者很懒,什么都没留下…
展开
-
audio 一些基本概念
Audio 是整个 Android 平台非常重要的一个组成部分,负责音频数据的采集和输出、音频流的控制、音频设备的管理、音量调节等,主要包括如下部分:Audio Application Framework:音频应用框架 AudioTrack:负责回放数据的输出,属 Android 应用框架 API 类AudioRecord:负责录音数据的采集,属 Android 应用框架 API 类AudioSy...转载 2018-06-11 15:21:00 · 13455 阅读 · 0 评论 -
android audio buffer 分析
我们知道,播放audio的时候,音频数据是从AT传送到AF的,然后AF中的audiomixer来读取PCM数据做mix下面对这个流程做大体分析。首先,分析一下AT和AF之间传递数据使用的内存是在哪里分配的。AT章节里面,我们分析AudioTrack::createTrack_l函数时,有这么一段代码: sp<IAudioTrack> track = audioFlinger-&g...转载 2018-07-06 11:32:32 · 3406 阅读 · 0 评论 -
obtainBuffer数据是如何传输
MediaPlayer那边就不看了,从AudioTrack开始研究。1、AudioTrack::write函数调用函数obtainBuffer获取到一块buffer,然后把传入的数据copy到获取的buffer中。2、AudioTrack::obtainBuffer函数该函数的主要功能就是对传入的audioBuffer进行赋值。看看audioBuffer的类型:class Buffer { ...转载 2018-07-06 11:16:15 · 1519 阅读 · 0 评论 -
audio的输出设备切换分析
本文主要介绍android上音频输出设备切换的代码流程(此文部分内容参考自邓凡达老师的博客。感谢邓老师讲解)上层程序要切换输出设备时,经过JNI调用,会调用AudioSystem::setForceUse[cpp] view plain copystatus_t AudioSystem::setForceUse(audio_policy_force_use_t usage, audio_polic...转载 2018-07-04 14:39:11 · 2160 阅读 · 0 评论 -
Android Audio 音频输出设备切换
扬声器输出和耳机输出是音频系统最基本的音频输出通路,实际应用中用户可根据自己需要随意切换,具体表现是通过插入耳机选择耳机输出,拔出耳机选择默认的扬声器输出。 如图5-13所示,扬声器与耳机输出切换的实现思路是内核底层驱动实现耳机插拔检测,然后通过uevent通信机制通知Java框架层,Java框架层通过Intent机制发...转载 2018-07-04 14:36:56 · 6982 阅读 · 0 评论 -
Android 如何启动apk,am start -n com.example.yourpackage/com.example.activity.YourActivity
aapt dump badging <file_path.apk>For example$ aapt dump badging AudioRecord.apkpackage: name='com.sonymobile.androidapp.audiorecorder' versionCode='20030' versionName='2.00.30' platformBuildVers...原创 2018-06-28 16:39:56 · 1669 阅读 · 0 评论 -
AudioFlinger常用接口
转载 2018-06-20 10:33:27 · 373 阅读 · 0 评论 -
AudioRecorder参数数明
MediaRecorder.AudioSource.MIC参数说明其中第一个参数就是选择录音源的,其可选参数如下:MediaRecorder.AudioSource.CAMCORDER设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风MediaRecorder.AudioSource.DEFAULT 默认音频源MediaRecorder.AudioSource....转载 2018-06-26 17:51:46 · 1211 阅读 · 0 评论 -
selinux权限修改
1.标志性log 格式 avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类型 permissive=0在相应源类型.te文件,添加如下格式的一行语句:(结尾别忘了分号) 格式:allow 源类型 目标类型:访问类型 {操...原创 2018-09-18 20:28:28 · 2201 阅读 · 0 评论