百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

一篇文章带你学会所有音频调试技巧

liuian 2025-02-13 13:06 50 浏览

目前我们开发音频使用最多的系统应该就是Android和Linux了。针对这两个系统都有各自的调试工具,Android使用的是简化后的tinyalsa工具,Linux用的就是原始的ALSA工具。下面我们就分别介绍下这两个工具。

LINUX平台

1. alsamixer

图形化界面工具,用于调整音量、选择输入输出设备等等,直接在控制带窗口输入alsamixer即可打开:

如图所示执行指令后会出现一个可视化窗口,通过上下左右键就可以控制,十分方便快捷。

2. amixer

amixer就不是可视化窗口那样了,他显示出来的就是接口控件列表。

指令:

amixer

输出示例:

Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Front Left: Playback 200 [78%] [on]
  Front Right: Playback 200 [78%] [on]

指定声卡

如果系统中有多个声卡,可以使用-c参数指定声卡

amixer -c 

列出所有简单控件

amixer scontrols

输出示例

Simple mixer control 'Master',0
Simple mixer control 'Capture',0

显示指定控件

amixer sget 
amixer cget numid=

示例

amixer sget Master

输出

Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Front Left: Playback 200 [78%] [on]
  Front Right: Playback 200 [78%] [on]

修改指定控件

amixer sset  
amixer cset numid= 

3. aplay

aplay 是 ALSA 提供的一个命令行工具,用于在 Linux 平台上播放音频文件。它支持多种音频格式(如 .wav),并允许用户指定音频设备进行播放,是音频调试的重要工具之一。

基本用法

aplay test.wav//播放test.wav文件

常用选项

选项

说明

-l

列出系统中的所有声卡和音频设备。

-D

指定播放的音频设备。

-q

静默模式,不显示播放信息。

--duration

指定播放时长(秒)。

-t

指定文件类型(如raw 或wav)。

-c

指定音频通道数(如1 表示单声道,2 表示立体声)。

-f

指定音频格式(如S16_LE 表示 16 位小端格式)。

-r

指定采样率(如 44100 Hz)。

-v

显示详细信息。

列出系统音频设备

aplay -l

输出:

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

解释:

  • card 0, device 0:代表声卡编号和设备编号。
  • 可用的音频设备有:
    • 0,0:默认模拟音频设备。
    • 1,3:HDMI 音频设备。

指定音频设备播放

aplay -D plughw:, 

示例:

在 card 0, device 0 上播放 test.wav。

aplay -D plughw:0,0 test.wav

arecord

arecord与aplay相对应,arecord就是用来录音的指令。

示例

arecord test.wav//在默认设备上录制音频,并保存为 test.wav。

常用选项

选项

说明

-l

列出系统中所有的录音设备。

-D

指定录音设备。

-d

指定录音时长(秒)。

-f

指定音频格式(如S16_LE 表示 16 位小端格式)。

-c

指定录音通道数(如1 表示单声道,2 表示立体声)。

-r

指定采样率(如 44100 Hz)。

-t

指定输出文件类型(如raw 或wav)。

-q

静默模式,不显示录音信息。

-V mono

或-V stereo

显示录音时的音量电平。

-v

显示详细信息。

详细的使用大家可以在自己的设备上多多尝试下。

Android平台

tinymix

输出:

Number of controls: 15
ctl 0: 'Playback Volume', value: 63
ctl 1: 'Capture Volume', value: 50
ctl 2: 'Mic Select', value: 'Main Mic'
ctl 3: 'Headphone Jack Switch', value: 1

每一行表示一个控制项:

  • ctl: 控制项的编号。
  • 名称: 控制项的名称。
  • 值: 当前设置值,可以是数值或字符串。


修改控件的值

tinymix  
//示例:tinymix 1 75
//将 Capture Volume 设置为 75。

查询支持的音频设备

tinymix -D
//查看所有支持的音频设备或卡。

tinymix 与 Android 音频系统的关系

在 Android 音频架构中,tinymix 作用于 音频硬件抽象层(HAL) 和 驱动层,直接与音频设备通信。它可以跳过 Android 的 AudioFlinger 和 AudioPolicyManager,直接对底层音频参数进行调整。

tinymix的作用范围

[音频 HAL] <--> [ALSA 驱动]

上面介绍的两种都是基于系统底层调试的方案,我们可以通过这两种方式去调试验证驱动代码是否有异常,但如果是上层呢?那每个系统就都会有自己定制的方案,比如HAL层,每个厂家调试方案都是不一样的,就MTK来说就是设置个属性值来控制调试开关。这个时候就需要我们去查看厂家的调试指导手册了。

Audioflinger

不过Android的audioflinger层还有一个共有的调试方式,我们一起来看下

adb shell dumpsys media.audio_flinger

这个命令会输出 AudioFlinger 的当前状态,包括音频硬件的使用情况、流的状态等。

Tee Sink

Tee Sink 是 AudioFlinger 提供的一种调试功能,它允许在音频流被送往最终的输出设备之前将音频流复制一份,并将这份音频数据发送到另一个输出端。这对于调试和分析音频流非常有用。

编译时设置

cd frameworks/av/services/audioflinger
修改 Configuration.h。
对 #define TEE_SINK 取消注释。
重新构建 libaudioflinger.so。
adb root
adb remount
将新的 libaudioflinger.so 推送或同步到设备的 /system/lib。

运行时设置

adb shell getprop | grep ro.debuggable确认输出是:[ro.debuggable]: [1]
adb shell
ls -ld /data/misc/audioserver
确认输出是:drwx------ media media ... media
echo af.tee=# > /data/local.prop其中,
af.tee 值是一个数字,在下文中有所说明。
chmod 644 /data/local.prop
reboot

如果audioserver目录不存在,请按如下方式创建:

mkdir /data/misc/audioserver
chown media:media /data/misc/audioserver

测试:

运行您的音频测试。
adb shell dumpsys media.audio_flinger
在 dumpsys 输出中查找如下行:
tee copied to /data/misc/audioserver/20131010101147_2.wav
这是一个PCM.wav 文件。
然后,使用 adb pull 命令提取任何相关的 /data/misc/audioserver/*.wav 文件;

图文来源:快乐程序猿 作者:麋鹿

声明:我们尊重“真实原创”,转载仅供学习交流,旨在传播有益信息,如有侵权,请联系我们,谢谢!

相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...