• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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```