android 7 audio架构,GitHub - zozo825117/ble_audio_android: android audio框架
ble_audio_android
android audio框架
蓝牙BLE又称bluetooth smart,主打的是低功耗和快速链接,所以在支持的profile并没有audio的部分,而蓝牙语音协议A2DP只在传统蓝牙中有,本文就是提供一种利用ble数据来传输压缩语音,并最终在实现用android语音框架中的AudioRecord方法来获取语音流。
说明文档:蓝牙ble数据转语音实现Android AudioRecord方法推荐
Features
kernel audio driver
audio deamon
framework AudioMananger config
Adpcm decode
TODO
Project Organization
主要文件介绍
├── upcm
│ ├──upcm.c
│ ├──Makefile
├── android_PCM
│ ├── Android.mk
│ ├── audio_hw.cpp
│ ├── audio_policy.conf
├── aduio_d
│ ├── toolchain
│ ├── main.c
│ ├── audio.c
│ ├── dev_list.c
│ ├── ADPCMDecoder.c
│ ├── Makefile
├── AudioRecordTest
build
platform:Real4418
kernel:linux3.4.39
android:Android 4.4.2
upcm.ko的编译
修改upcm源码/Makefile 文件:
KDIR ?= /root/Desktop/myir_4418/android/linux/kernel/kernel-3.4.39
注:需要修改为当前使用的内核路径。
编译:
make ARCH=arm CROSS_COMPILE=/root/Desktop/myir_4418/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/arm-eabi-
注:需要修改为当前系统所需要的编译器路径。
Android PCM语音通道
将文件放到源码路径下,执行Android.mk编译。
audio deamon
交叉编译工具就在文件路径下,可直接编译。
Useage
创建一个虚拟的PCM通道
把upcm.ko放到文件系统/system/etc/下,在板级的init.rc里加入insmod /system/etc/upcm.ko。
这样上电就可以加载upcm.ko的驱动。
安卓中间层创建PCM通道来链接底层建立的虚拟PCM通道
把audio.LSDAudio.default.so,放到system/lib/hw/下。
修改system/etc/audio_policy.conf 文件,把primary里的input删掉,只留output,并加上下面的内容。可参考文件包的样本,注意检查权限为644。
audio.LSDAudio.default.so的加载,是靠audio_policy.conf里面建立PCM通道来加载的。这样就创建了一个input_mic的PCM通道。
LSDAudio {
inputs {
LSDAudio {
sampling_rates 8000|16000
channel_masks AUDIO_CHANNEL_IN_MONO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_BUILTIN_MIC
}
}
}
建立蓝牙语音数据连接
将工具audio_d放到system/bin,加入到系统里自动启动
service hidraw /system/bin/audio_d
class main
oneshot
注意,需要在加载upcm.ko之后运行。
APP测试工具
app测试工具:AudioRecordTest,直接安装APK即可使用。
Reference
android 7 audio架构,GitHub - zozo825117/ble_audio_android: android audio框架相关推荐
- 代码android点击效果,GitHub - likaiyuan559/TouchEffects: Android View点击特效TouchEffects,几行代码为所有控件添加点击效果...
Android 点击特效TouchEffects TouchEffects能够帮助你更快速方便的增加点击时候的效果,TouchEffects的目标是打造一个稳定.全面.且能更方便的自定义及个性化的一款 ...
- android图片美化开源,GitHub - xingxing-yan/BLImage: Android中美化图片的库。功能包括滤镜,贴纸,标签,裁剪,涂鸦,亮度,饱和度,对比度,马赛克等功能...
BLImage Android中美化图片的库.功能包括滤镜,贴纸,标签,裁剪,涂鸦,亮度,饱和度,对比度,马赛克等功能 效果图 添加依赖: 在project的build.gradle中添加: allp ...
- android滴滴技术架构,滴滴乘客端Android架构解密_何斌斌.pdf
滴滴出行乘客端Android架构解密 何斌斌 乘客Android负责人 自我介绍 自我介绍 自我介绍 滴滴出行乘客端Android负责人 十余年移动终端经验 拥有Android驱动.Framework ...
- android 平台马甲举报,GitHub - qq549631030/AndroidJunkCode: Android马甲包生成垃圾代码插件...
Android垃圾代码生成插件 此插件用于做马甲包时,减小马甲包与主包的代码相似度,避免被OPPO.VIVO等应用市场识别为马甲包. 使用方法 根目录的build.gradle中: buildscri ...
- android 小红书标签,GitHub - shellljx/TagViewGroup: Android 仿小红书图片标签Group
TagViewGroup Android 仿小红书图片标签,实现了图片标签的动画,布局,水波纹,编辑等功能,还可以自定义 Tag.视频演示地址 This is a library of tags th ...
- android画板控件,GitHub - imaiya/PainterView: Android画板控件,可以写字画画并生成图片...
PainterView Android画板控件,可以写字画画并生成图片 引用 最新版本号 Gradle Project.gradle allprojects { repositories { jcen ...
- android 联系人批量插入,GitHub - Atinerlengs/InsertDemo: android 简单的批量插入通话记录、联系人、短信demo...
[toc] 批量插入 批量插入通话记录 下面是添加通话数据的代码,我们自己去构造Tb_calllogs数据,里面可以添加通话记录数据字段,由于是个简单的demo,所以只加了number.callTyp ...
- android文件管理器项目,GitHub - yangsmith/FileExplorer: android file explorer android文件管理器...
File_Explorer Android 文件管理器 #发布版本 ####腾讯助手 ####百度助手 ####91助手 #包常用ui控件有: 1.侧滑菜单slidingMenu 2.兼容action ...
- android横向瀑布流布局,GitHub - wikison/android_waterfall: Android版的瀑布流布局
Android瀑布流实例 此项目由于最初设计问题,导致现在问题比较多,暂时停止维护. 我现在在其他类似的瀑布流上进行完善开发, ####请关注: 有必要解释一下程序为什么采用addview方式而不是做 ...
最新文章
- [转]Linux 微擎系统搭建
- python爬取微博指定内容_python3.5爬虫-爬取微博某博主微博内容
- 开发日记-20190820 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 1
- HTTP代理如何正确处理Cookie(2) - 转载(写的比较详细,并以实例讲解)
- grep检索关键字的命令_linux系统中java线上问题常用排查命令
- Spring注解中@Configuration和@Configurable的区别
- java 输出当月日历_java 实现打印当前月份的日历
- day6 java成员变量与局部变量以及对象的建立
- python输出元组重复的元素_python – 从n个元素生成所有4元组对
- Servlet ---- cookie session
- Java程序开发过程
- 嵌入式大杂烩周记 | 第 7 期:zlog
- mysql 分隔字符串的函数_Mysql 字符串分隔函数
- windows server 2019 中文语言包
- 小米8SE 解BL锁教程 申请BootLoader解锁教程
- 在Linux Mint 19.2 XFCE(x64)中安装Canon LBP2900+打印机驱动程序
- Notes真的无处不在
- 台式计算机usb口不识别鼠标,如何解决插入鼠标提示无法识别USB设备的问题
- 为什么高质量计算机书籍几乎都是外国人写的?
- 神奇的CSS用法之border-radius