1.介绍

Android使用的音频驱动库是tinyalsa,所以后面的说明都是基于驱动程序与tinyalsa的。

2.编译

编译出tinyalsa应用程序

$ mmm external/tinyalsa/

$ cp out/target/product/tiny4412/symbols/system/bin/tiny* /mnt/hgfs/Desktop/

生成的文件在out/target/product/tiny4412/symbols/system/bin/目录下。

然后可以将生成的文件拷贝到SD卡中:

$ ls /mnt/media_rw/sd_external/images/

Android

FriendlyARM.ini

Linux

Superboot4412.bin

UbuntuCore

tinycap

tinymix

tinypcminfo

tinyplay

在Android系统中,如果出现:

mkdir failed for share, Read-only file system

解决办法为:

$ su

$ mount -o remount /system

之后,就可以将文件拷贝到Android中了。

$ mkdir /share

$ cp /mnt/media_rw/sd_external/images/tiny* /share

$ cd /share

$ ./tinyplay

Usage: ./tinyplay file.wav [-D card] [-d device] [-p period_size] [-n n_periods]

要注意,使用tinyplay的时候,最好查看一下要播放的文件的格式,我是用过cooledit制作音频文件,发现是不符合tinyplay格式要求的。

需要注意的是如下内容:

音频文件格式

按照红色划分,主要是根据分析tinyplay.c源码分析出来的。

可以看到数据组织格式为:

数据

意义

备注

0x0001

audio_format

音频格式

0x0002

num_channels

左右2个声道

0x0000ac44

sample_rate

采样速率为44100

0x0002b110

byte_rate

176400

0x0004

block_align

4

0x0010

bits_per_sample

16bit

tinyplay是支持16bits per sample,2声道。我在cooledit上报错主要原因是这里不正确。

播放、录制音频

$ ./tinyplay 1.wav

Playing sample: 2 ch, 44100 hz, 16 bit

$ ./tinycap 2.wav

Capturing sample: 2 ch, 44100 hz, 16 bit

^CCaptured 241664 frames

经过验证,在Tiny4412开发板上,播放与录制音频都能成功。

android音频驱动工程师,4.Android音频驱动(底层1)相关推荐

  1. 嵌入式linux驱动工程师面试,嵌入式Linux驱动工程师/BSP开发工程师面试笔试题集锦...

    以下题目可能与原题目有差入,但力争使题目与原题目接近. [一.来自Q群友] 1. linux内核里面,内存申请有哪几个函数,各自的区别? 2. IRQ和FIQ有什么区别,在CPU里面是是怎么做的? 3 ...

  2. android面试软件工程师,华为ANDROID软件工程师面试经验

    面试过程: 首先他让我简单介绍一下自己,我介绍了本科和硕士期间分别是什么专业,具体学习了哪些方向的内容,又讲了一下中间的工作经历.然后他问我对算法有什么了解,能不能挑一种熟悉的算法解释一下原理.我正好 ...

  3. Android音频架构工程师开篇引言

    Android音频架构师 目的 风格 受众 文章结构 更新进度 目的 写这样一个专栏的初衷,是因为本人在2019年上半年入职目前这家公司,最初入职的职位是驱动工程师,一开始从事的内容也都是驱动这一块的 ...

  4. linux/android驱动工程师面试相关内容总结

    理论的东西不常用时就会慢慢的被遗忘,但是找工作就是一个如何让别人相信自己的过程,理论知识就是一个非常重要的途径. 一次次机会在错失,每次想找工作时,刷一下简历就去面试了,一次次因为理论被鄙视,也该长长 ...

  5. android4.2 音频模块启动分析,Android 音频模块学习小结

    现在移动端已不仅仅局限于文本.图片这些 pc 平台上的常见信息类型,语音的使用愈见频繁,于是前段时间萌生了个想法:如果在移动端对语音内容做处理,提取特征出来构建关键词库是否可以对这些语音进行分类.搜索 ...

  6. Android/linux从usb声卡获取音频(使用libusb库)----环境,lsusb命令的介绍(一)

    Android/linux从usb声卡获取音频(使用libusb库)---环境,lsusb命令的介绍(一)        Android/linux从usb声卡获取音频(使用libusb库)---设备 ...

  7. Android 9 Audio系统笔记:音频路由实现——从AudioTrack到audiohal

    目录 一.动态路由的初始化 1.获取路由策略 2.向AudioPolicyManager注册路由策略 二.动态路由的路由流程,以AudioTrack创建为例 创建AudioTrack的路由选择 如何定 ...

  8. Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记

    Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记     本章学习了使用git下载两套源代码并搭建两个开发环境.分别为Android源代码和Linux内核源代码.A ...

  9. 【Android RTMP】音频数据采集编码 ( FAAC 编码器编码 AAC 音频采样数据 | 封装 RTMP 音频数据头 | 设置 AAC 音频数据类型 | 封装 RTMP 数据包 )

    文章目录 安卓直播推流专栏博客总结 一. FAAC 编码器编码 AAC 音频采样数据 二. 封装 RTMP 音频数据头 三. 封装 RTMP 音频数据类型 四. 拷贝 AAC 音频数据到 RTMPPa ...

  10. 【Android RTMP】音频数据采集编码 ( FAAC 编码器编码 AAC 音频解码信息 | 封装 RTMP 音频数据头 | 设置 AAC 音频数据类型 | 封装 RTMP 数据包 )

    文章目录 安卓直播推流专栏博客总结 一. FAAC 编码器编码 AAC 音频解码信息 二. 封装 RTMP 音频数据头 三. 封装 RTMP 音频数据类型 四. 拷贝 AAC 音频数据到 RTMPPa ...

最新文章

  1. Linux常用压缩与解压缩命令
  2. 一般筛法求素数+快速线性筛法求素数
  3. 【python教程入门学习】学习Python可以做什么
  4. 行业洞见 | 一文了解自动驾驶汽车
  5. 025_CSS框模型概述
  6. Siamese Network (应用篇1) :孪生网络特征用于图像匹配 ICPR2016
  7. MVC 3.0 在各个版本IIS中的部署
  8. matlab2017b修改mesh的着色方案
  9. Spring事务配置方式(一) 拦截器方式配置
  10. 2017杭州云栖大会FAQ(持续更新中)
  11. 微信linux 下载文件夹,把Windows下微信文件夹复制到Deepin-WeChat目录以更新微信
  12. redis集群原理面试回答
  13. RAID环境中增加容量-在线扩容
  14. [面试]HR最常用的20个面试问题及答案
  15. 计算机思维导论raptor实验报告,计算机基础实验报告Raptor.pdf
  16. 这些年,这些ACM大佬-吴作凡访谈
  17. 安卓txt极简记事本文件保存内部存储无广告
  18. 我的java开发总结
  19. 【RK3288 Android 7.1 / KEN】双屏异显流程
  20. ajax自动加载blogjava和博客园的rss

热门文章

  1. netty报错LEAK: ByteBuf.release() was not called before it‘s garbage-collected.的解决方法
  2. 金庸走过,留给马云和阿里巴巴一个“江湖”
  3. jabref java_Jabref安装及使用教程
  4. 六线小县城实录美食篇
  5. 我是不是该安静的走开
  6. 变额年金(一、 递增年金)
  7. js实现页面视频监控全屏
  8. 计算机怎么通电启动,电脑通电自动开机怎么设置
  9. Student‘s t分布
  10. 分子生物学中常用数据库