如何查看声卡、pcm设备以及tinyplay、tinymix、tinycap的使用 Android tinyAlsa命令详解:

这篇具有很好参考价值的文章主要介绍了如何查看声卡、pcm设备以及tinyplay、tinymix、tinycap的使用 Android tinyAlsa命令详解:。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、查看声卡和pcm设备

1、查看当前的声卡:
cat /proc/asound/cards
2、查看pcm设备列表:
cat /proc/asound/pcm
3、查看当前有哪些进程占用了pcm设备节点
lsof |grep pcm    
4、查看有哪些音频设备节点
ls /dev/snd/

xxxx:/ $ ls /dev/snd/                                                                                                                                                         
controlC0 pcmC0D12p pcmC0D16c pcmC0D19p pcmC0D21p pcmC0D24c pcmC0D27p pcmC0D2c  pcmC0D31p pcmC0D34c pcmC0D3p pcmC0D6c pcmC0D8p  sequencer2 
pcmC0D0p  pcmC0D13c pcmC0D17c pcmC0D1c  pcmC0D22p pcmC0D25p pcmC0D28c pcmC0D2p  pcmC0D32p pcmC0D34p pcmC0D4c pcmC0D6p pcmC0D9p  timer      
pcmC0D10c pcmC0D14c pcmC0D18c pcmC0D20c pcmC0D23c pcmC0D26p pcmC0D28p pcmC0D30c pcmC0D33c pcmC0D35c pcmC0D4p pcmC0D7c seq       
pcmC0D11p pcmC0D15p pcmC0D19c pcmC0D20p pcmC0D23p pcmC0D27c pcmC0D29c pcmC0D30p pcmC0D33p pcmC0D3c  pcmC0D5p pcmC0D7p sequencer

音频设备的命名规则为 [device type]C[card index]D[device index][capture/playback],即名字中含有4部分的信息:

  1. device type
    设备类型,通常只有comtrol/pcm这2种。从上图可以看到声卡会管理很多设备,PCM设备只是其中的一种设备。
  2. card index
    声卡的id,代表第几块声卡。通常都是0,代表第一块声卡。手机上通常都只有一块声卡。
  3. device index
    设备的id,代表这个设备是声卡上的第几个设备。设备的ID只和驱动中配置的DAI link的次序有关。如果驱动没有改变,那么这些ID就是固定的。
  4. capture/playback
    只有PCM设备才有这部分,只有c和p两种。c代表capture,说明这是一个提供录音的设备,p代表palyback,说明这是一个提供播放的设备。
    系统会在/proc/asound/pcm文件中列出所有的音频设备的信息,如果是肉眼查看,cat /proc/asound/pcm中的信息会更直观一些:
xxxx:/ $ cat /proc/asound/pcm
00-00: MultiMedia1_PLayback ak7739-aif4-0 :  : playback 1
00-01: MultiMedia1_Capture ak7739-aif3-1 :  : capture 1
00-02: Voice_MD1_PLayback mt-soc-codec-voicemd1-dai-2 :  : playback 1 : capture 1
00-03: TDM_PLayback mt-soc-hdmi-dummy-dai-codec-3 :  : playback 1 : capture 1
00-04: ULDL_Loopback mt-soc-codec-uldlloopback-dai-4 :  : playback 1 : capture 1
00-05: I2S0_PLayback mt-soc-i2s0-dummy-dai-codec-5 :  : playback 1
00-06: MRGRX_PLayback mt-soc-mrgrx-dai-codec-6 :  : playback 1 : capture 1
00-07: MRGRX_CAPTURE mt-soc-mrgrx-dummy-dai-codec-7 :  : playback 1 : capture 1
00-08: I2S0DL1_PLayback mt-soc-codec-I2s0tx-dai-8 :  : playback 1
00-09: Deep_Buffer_PLayback mt-soc-codec-deepbuffer-tx-dai-9 :  : playback 1
00-10: DL1_AWB_Record mt-soc-codec-dl1awb-dai-10 :  : capture 1
00-11: Voice_MD1_BT_Playback mt-soc-codec-voicemd1-bt-dai-11 :  : playback 1
00-12: VOIP_Call_BT_Playback mt-soc-codec-voipcall-btout-dai-12 :  : playback 1
00-13: VOIP_Call_BT_Capture mt-soc-codec-voipcall-btin-dai-13 :  : capture 1
00-14: TDM_Debug_Record mt-soc-tdmrx-dai-codec-14 :  : capture 1
00-15: FM_MRGTX_Playback mt-soc-fmmrg2tx-dummy-dai-codec-15 :  : playback 1
00-16: MultiMediaData2_Capture mt-soc-codec-rx-dai2-16 :  : capture 1
00-17: MultiMediaData3_Capture mt-soc-codec-rx-dai3-17 :  : capture 1
00-18: I2S0AWB_Capture ak7739-aif2-18 :  : capture 1
00-19: Voice_MD2_PLayback mt-soc-codec-voicemd2-dai-19 :  : playback 1 : capture 1
00-20: MultiMedia_Routing mt-soc-dummy-dai-codec-20 :  : playback 1 : capture 1
00-21: Voice_MD2_BT_Playback mt-soc-codec-voicemd2-bt-dai-21 :  : playback 1
00-22: HP_IMPEDANCE_Playback mt-soc-codec-hp-impedance-dai-22 :  : playback 1
00-23: FM_I2S_Playback a2b24xx-hifi-23 :  : playback 1 : capture 1
00-24: FM_I2S_Capture mt-soc-fm-i2s-dummy-dai-codec-24 :  : capture 1
00-25: MultiMedia2_PLayback mt-soc-codec-tx-dai2-25 :  : playback 1
00-26: MultiMedia3_PLayback mt-soc-codec-offload-dai-26 :  : playback 1
00-27: BTCVSD_Capture snd-soc-dummy-dai-27 :  : playback 1 : capture 1
00-28: BTCVSD_Playback snd-soc-dummy-dai-28 :  : playback 1 : capture 1
00-29: ANC_Record mt-soc-dummy-dai-codec-29 :  : capture 1
00-30: Voice_USB_PLayback mt-soc-codec-voiceusb-dai-30 :  : playback 1 : capture 1
00-31: Voice_USB_EchoRef mt-soc-codec-voiceusb-echoref-dai-31 :  : playback 1
00-32: I2S5DL1_PLayback ak7739-aif1-32 :  : playback 1
00-33: Headphone_PLayback snd-soc-dummy-dai-33 :  : playback 1 : capture 1
00-34: Speaker_PLayback snd-soc-dummy-dai-34 :  : playback 1 : capture 1
00-35: I2S2ADC2_Capture snd-soc-dummy-dai-35 :  : capture 1

以上面的左侧00-01为例来说明下:前面2位数字指的card index:00,后面2位是device index:01。

二、tinyalsa的使用

1、编译tinyalsa

aosp/external/tinyalsa$ mma

2、编译完后就生成tinyplay、tinymix、tinycap等工具。

xxxx/aosp/out/target/product/ecarxICp1_64/system/bin$ ls tiny*
tinycap  tinyhostless  tinymix  tinypcminfo  tinyplay

3、将生成的这些可执行斌文件拷贝到开发板的/system/bin下,并加可执行权限。

xxxx:/system/bin $ ls tiny* -l                                                                                                                                                
-rwxr-xr-x 1 root shell 68488 2021-12-06 22:56 tinycap
-rwxr-xr-x 1 root shell 68408 2021-12-06 22:56 tinyhostless
-rwxr-xr-x 1 root shell 68656 2021-12-06 22:56 tinymix
-rwxr-xr-x 1 root shell 68448 2021-12-06 22:56 tinypcminfo
-rwxr-xr-x 1 root shell 68408 2021-12-06 22:56 tinyplay

4、tinyplay

tinyplay只能播放wav格式的音频文件 :

xxxx:/storage/emulated/0/Music # tinyplay 48000_2ch_16bit.wav                                                                                                                 
Playing sample: 2 ch, 48000 hz, 16 bit

5、tinymix

直接输入tinymix可以得到音频通路相关的各项配置参数。也可以通过添加参数修改其中的配置。

:/sdcard # tinymix |  grep -E "V01|SRC3"
33      ENUM    1       xxxxx Audio Noise Clean Type             V01
97      ENUM    1       SRC3 Sync Domain                         SD3
199     ENUM    1       SRC3 Digital Filter                      HF
203     ENUM    1       SRC3 Group Delay Matching                Disable
207     BOOL    1       SRC3 Soft Mute                           Off
211     ENUM    1       SRC3 Soft Mute Mode                      Manual
215     BOOL    1       SRC3 Lock Signal Output                  Off
219     BOOL    1       SRC3 Lock Status                         On
223     BOOL    1       SRC3 Overflow Status                     Off
522     ENUM    1       SRC3 Source Selector                     SDIN2
:/ # tinymix 33                                                                
Ecarx Audio Noise Clean Type: SW Baidu >V01

设置:

:/ # tinymix 33 SW

再查看:

127|:/ # tinymix | grep 33                                                     
33      ENUM    1       xxxxx Audio Noise Clean Type             SW
:/ # tinymix 33
xxxxx Audio Noise Clean Type: >SW Baidu V01
:/ # tinymix | grep SRC3                                                       
97      ENUM    1       SRC3 Sync Domain                         SD3
199     ENUM    1       SRC3 Digital Filter                      HF
203     ENUM    1       SRC3 Group Delay Matching                Disable
207     BOOL    1       SRC3 Soft Mute                           Off
211     ENUM    1       SRC3 Soft Mute Mode                      Manual
215     BOOL    1       SRC3 Lock Signal Output                  Off
219     BOOL    1       SRC3 Lock Status                         On
223     BOOL    1       SRC3 Overflow Status                     Off
522     ENUM    1       SRC3 Source Selector                     ADC1

6、tinycap

接上mic就可以录音了:

:/ # tinycap /sdcard/456.wav -d 1                                              
Capturing sample: 2 ch, 44100 hz, 16 bit
^CCaptured 307200 frames

7、tinypcminfo

tinypcminfo用于查看pcm通道的相关信息:

xxxx:/storage/emulated/0/Music # tinypcminfo -D /proc/asound/cards
Info for card 0, device 0:

PCM out:
      Access:	0x000009
   Format[0]:	0x000ccc
   Format[1]:	00000000
 Format Name:	S16_LE, S16_BE, S24_LE, S24_BE, S32_LE, S32_BE
   Subformat:	0x000001
        Rate:	min=8000Hz	max=192000Hz
    Channels:	min=1		max=2
 Sample bits:	min=16		max=32
 Period size:	min=0		max=24576
Period count:	min=1		max=16

PCM in:
cannot open device '/dev/snd/pcmC0D0c'
Device does not exist.

也可以直接带上声卡和设备信息来查看:

如:device id:0,表示playback

:/ # tinypcminfo -D 0 -d 0                                                     
Info for card 0, device 0:

PCM out:
      Access:   0x000009
   Format[0]:   0x000ccc
   Format[1]:   00000000
 Format Name:   S16_LE, S16_BE, S24_LE, S24_BE, S32_LE, S32_BE
   Subformat:   0x000001
        Rate:   min=8000Hz      max=192000Hz
    Channels:   min=1           max=2
 Sample bits:   min=16          max=32
 Period size:   min=0           max=24576
Period count:   min=1           max=16

PCM in:
cannot open device '/dev/snd/pcmC0D0c'
Device does not exist.

如:device id:1,表示capture

:/ # tinypcminfo -D 0 -d 1                                                     
Info for card 0, device 1:

PCM out:
cannot open device '/dev/snd/pcmC0D1p'
Device does not exist.

PCM in:
      Access:   0x000009
   Format[0]:   0x000ccc
   Format[1]:   00000000
 Format Name:   S16_LE, S16_BE, S24_LE, S24_BE, S32_LE, S32_BE
   Subformat:   0x000001
        Rate:   min=8000Hz      max=192000Hz
    Channels:   min=1           max=4
 Sample bits:   min=16          max=32
 Period size:   min=0           max=24576
Period count:   min=1           max=49152

从上面获得的信息中可以知道PCM的采样率,通道个数,采样点数等信息。

Android tinyAlsa命令详解:

Android tinyAlsa命令详解_Linux驱动专栏的博客-CSDN博客_tinyplay命令文章来源地址https://www.toymoban.com/news/detail-430753.html

到了这里,关于如何查看声卡、pcm设备以及tinyplay、tinymix、tinycap的使用 Android tinyAlsa命令详解:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何通过路由器来查看占用wifi的设备

    最近有网友反映家里的wife很慢,想知道怎么查看自己家的wife有多少设备在使用,今天来教大家通过路由器如何来查看占用wifi的设备。 路由器怎么看有几台设备在线? 查看无线路由器中有几台电脑在线,其实很简单,只要登录路由器后台管理界面,即可查看,具体方法如下

    2024年02月06日
    浏览(39)
  • 如何查看自己电脑上是否成功安装了Mysql,以及如何查看mysql的安装目录

    1、打开cmd,输入命令:net start mysql查看服务是否启动,若显示已启动则表示安装成功 2、窗口+R,输入services.msc,在弹出的服务窗口中我们可以发现MySQL正在运行中,表示已经安装成功。 双击MySQL,在弹出的界面中可以查看到mysql对应的安装目录

    2024年03月25日
    浏览(62)
  • Docker服务以及容器如何设置设备开机自动启动

    如果碰到断电重启,在没有设置自动启动的情况下,我们所有应用(比如redis)都需要重新手动启动一遍,这样就非常麻烦,不能及时处理,所以本文来讲解一下如果设置自动启动,话不多说,直接开始。 使用docker run命令创建容器时没有添加参数 --restart=always ,导致的后果是

    2024年02月04日
    浏览(45)
  • 音频文件PCM、WAV、MP3的区别以及文件合并

    采样率即采样频率,指的一秒内的采样次数,它反映了采样点之间的间隔大小。常说的 44.1KHz 采样率,也即 1 秒采集了 44100 个样本。间隔越小,丢失的信息越少,数字声音就越逼真细腻,要求的存储量也就越大。由于计算机的工作速度和存储容量有限,而且人耳的听觉上限为

    2024年02月15日
    浏览(49)
  • 如何安装、卸载Selenium以及查看Selenium版本

    安装环境:windows系统 安装步骤 管理员身份打开cmd 输入 pip install selenium (出现下图是已经成功安装4.0.0版本了)   查看版本号 管理员身份打开cmd 输入 pip show selenium就可以查看版本号了(Version=4.0.0) 卸载selenium 管理员身份运行cmd 输入pip uninstall selenium 输入Y确定删除 删除成功输

    2024年02月11日
    浏览(49)
  • 计算机设备管理器如何看内存,怎么查看电脑配置信息?3种方法,让你掌握电脑全部信息!...

    转载:https://blog.csdn.net/weixin_35849957/article/details/118512756?spm=1001.2014.3001.5502 原标题:怎么查看电脑配置信息?3种方法,让你掌握电脑全部信息! 电脑的配置决定了电脑性能高低以及运行速度。而电脑配置主要看CPU、显卡、主板、内存、硬盘等等。那么,你知道怎么去查看电脑

    2024年02月04日
    浏览(64)
  • MySQL如何查看添加修改表以及字段注释信息

    MySQL数据库中,如何查看表和字段的注释信息,以及如何添加,修改表和字段的注释信息呢?这里简单总结归纳一下。仅供参考。 方法1:创建表的时候添加表的注释信息 方法2:使用ALTER TABLE给表添加注释 如果修改表的注释信息,只能使用上面的方法2. 方法1:查看表的创建脚

    2024年03月09日
    浏览(53)
  • 吉他如何实现内录or通过转接头和简易声卡连接电脑没有声音怎么办

    目录 效果器or智能音箱 电吉他和效果器的连接 效果器和耳机or音箱连接 内录方法 为什么用6.5mm(入)转3.5mm(出)转接头内录无声音 整体连接图示 这篇文章我会以通俗的语言为初学者描述如何让电吉他“燃起来”,效果器以MOOER魔耳POGO迷你电吉他综合效果器为示例。然后我

    2024年02月15日
    浏览(82)
  • 【深度学习环境】如何查看CUDA版本 | 两个CUDA版本各表示什么 | 是否可以在同一设备安装多个CUDA版本

    cuda有两个API:runtime(运行时) API和driver(驱动)API。这两个API都有各自对应的cuda版本。 查看cuda版本的命令如下 nvidia-smi:表示电脑可支持cuda的最高版本 ,(gpu driver installer) nvcc -V:表示当前下载的使用的cuda版本,(CUDA Toolkit installer) CUDA Toolkit(runtime)本质上是一个工具包,所以

    2024年02月15日
    浏览(59)
  • 如何在云电脑串流中实现声音输入输出—虚拟声卡(虚拟扬声器和虚拟麦克风)开发

    虚拟声卡(虚拟扬声器和虚拟麦克风)技术原理简介 近些年云计算的发展可谓是势不可挡,无论是办公还是娱乐等行业都开始使用云计算来逐步替代直接使用本地物理硬件的技术,例如: 服务器部署。相比之前,现在部署一个服务器都非常简单;我们只需要在阿里云,华为

    2024年02月04日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包