1- [三方开源软件alsa-utils](#三方开源软件alsa-utils) 2 - [1. alsa-utils简介](#1-alsa-utils简介) 3 - [2. 组件引入背景简述](#2-组件引入背景简述) 4 - [3. 使用场景](#3-使用场景) 5 - [4. 为OpenHarmony带来的价值](#4-为openharmony带来的价值) 6 - [5. 如何使用](#5-如何使用) 7 - [5.1 添加编译](#51-添加编译) 8 - [5.2 常用命令的使用](#52-常用命令的使用) 9 10## 三方开源软件alsa-utils 11### 1. alsa-utils简介 12alsa-utils作为一种HDI之外的定位工具,便于问题定界、方便对HDI不熟悉的驱动移植生态伙伴使用,包含用于ALSA的命令行实用程序。 13您可以通过[ALSA官网](http://www.alsa-project.org)了解更多关于ALSA项目的信息。 14 15### 2. 组件引入背景简述 16为满足OEM生态伙伴已经支持ALSA的产品采用"ALSA兼容方案"接入OpenHarmony,而提供的命令行定位调试工具。 17 18### 3. 使用场景 19只能用于已安装ALSA驱动程序和ALSA C库(ALSA -lib)的系统中使用,且只能作为独立工具使用。 20 21### 4. 为OpenHarmony带来的价值 221. 满足OEM生态伙伴中已支持的ALSA的产品快速接入OpenHarmony诉求。 232. 降低开发者学习成本加速南向生态发展。 24 25### 5. 如何使用 26#### 5.1 添加编译 27由于alsa-utils作为调试工具默认不编译打包,您可以采用以下两种方式进行编译: 281. 如果采用Openharmony主线源码 29您可采用以下命令进行编译: 30```bash 31./build.sh --product-name [PRODUCT_NAME] --ccache --build-target third_party/alsa-utils:alsa-utils 32``` 332. 如已拉出分支需要编译打包 34在现有的OpenHarmony的文档或者子系统中有如下添加方法 35方法:在您的 bundle.json 文件 添加 36```json 37"build": { 38 "sub_component": [ 39 "//third_party/alsa-utils:alsa-utils" 40 ] 41} 42``` 43注意:此三方件编译需要先编译ALSA-lib 44 45### 5.2 常用命令的使用 46 47aplay放音XXX.wav音频文件,详细参数及使用请用“ -h” 查看 48 49```bash 50aplay /data/XXX.wav 51``` 52 53arecord录音test.wav,其中 -d 30表示录制30s时间, -r 44100表示rate 为44100Hz, -c 2表示为双声道立体声, -t wav表示录制的音频文件是wav格式 54 55```bash 56arecord -d 30 -f cd -r 44100 -c 2 -t wav test.wav 57``` 58 59amixer命令打开录放音通路,contents用来查看各个元素(以dayu_200开发板举例),cset来设置录放音通路: 60 61```bash 62# amixer contents 63numid=2,iface=MIXER,name='Capture MIC Path' 64 ; type=ENUMERATED,access=rw------,values=1,items=4 65 ; Item #0 'MIC OFF' 66 ; Item #1 'Main Mic' 67 ; Item #2 'Hands Free Mic' 68 ; Item #3 'BT Sco Mic' 69 : values=1 70numid=1,iface=MIXER,name='Playback Path' 71 ; type=ENUMERATED,access=rw------,values=1,items=11 72 ; Item #0 'OFF' 73 ; Item #1 'RCV' 74 ; Item #2 'SPK' 75 ; Item #3 'HP' 76 ; Item #4 'HP_NO_MIC' 77 ; Item #5 'BT' 78 ; Item #6 'SPK_HP' 79 ; Item #7 'RING_SPK' 80 ; Item #8 'RING_HP' 81 ; Item #9 'RING_HP_NO_MIC' 82 ; Item #10 'RING_SPK_HP' 83 : values=6 84#amixer cset numid=1 6 85#amixer cset numid=2 1 86```