Linux 音频路由适配 (amixer)

这篇具有很好参考价值的文章主要介绍了Linux 音频路由适配 (amixer)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

amixer 详解

Alsa是Advanced Linux Sound Architecture的缩写,即高级Linux声音架构,在Linux操作系统上提供了对音频和MIDI的支持。Alsa提供的调试命令有基于文本下的图形界面的alsamixer和文本模式的 amixer,amixer也可以称作命令行模式。
Ubuntu Debian 等常见 Linux 终端文件系统音频开发过程,没有显示器但又需要查看音频设备信息,amixer 则是不错的选择。接下来以 rk3568 芯片的 rk809(rk817) codec 为例,讲解如何获取声卡参数设定和如何设定声卡参数。



1. amixer命令详解

1.1 设定声卡音频路由

1.1.1 按照属性名设定路由属性

a) 设定 “Playback Path” 为 “SPK_HP”

 $ amixer -c 0 sset "Playback Path" "SPK_HP" 
Simple mixer control 'Playback Path',0
Capabilities: enum
Items: 'OFF' 'RCV' 'SPK' 'HP' 'HP_NO_MIC' 'BT' 'SPK_HP' 'RING_SPK' 'RING_HP' 'RING_HP_NO_MIC' 'RING_SPK_HP'
Item0: 'SPK_HP'

b) 获取 “Playback Path” 的参数值

$ amixer -c 0 sget "Playback Path"
Simple mixer control 'Playback Path',0
Capabilities: enum
Items: 'OFF' 'RCV' 'SPK' 'HP' 'HP_NO_MIC' 'BT' 'SPK_HP' 'RING_SPK' 'RING_HP' 'RING_HP_NO_MIC' 'RING_SPK_HP'
Item0: 'SPK_HP'
1.1.2 获取声卡音频路由属性

a) 如何快速查看声卡的信息,命令如下

$ amixer -c 0 contents
numid=2,iface=MIXER,name='Capture MIC Path'
; type=ENUMERATED,access=rw------,values=1,items=4
; Item #0 'MIC OFF'
; Item #1 'Main Mic'
; Item #2 'Hands Free Mic'
; Item #3 'BT Sco Mic'
: values=1
numid=1,iface=MIXER,name='Playback Path'
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'OFF'
; Item #1 'RCV'
; Item #2 'SPK'
; Item #3 'HP'
; Item #4 'HP_NO_MIC'
; Item #5 'BT'
; Item #6 'SPK_HP'
; Item #7 'RING_SPK'
; Item #8 'RING_HP'
; Item #9 'RING_HP_NO_MIC'
; Item #10 'RING_SPK_HP'
: values=6

b)不仅可查看声卡内容,还可查卡控制信息

$ amixer -c 0 controls
numid=2,iface=MIXER,name='Capture MIC Path'
numid=1,iface=MIXER,name='Playback Path'
1.1.3 根据控制信息设定声卡状态

a) 设定指定声卡可控属性信息

$ amixer -c 0 cget numid=1,iface=MIXER,name='Playback Path'
numid=1,iface=MIXER,name='Playback Path'
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'OFF'
; Item #1 'RCV'
; Item #2 'SPK'
; Item #3 'HP'
; Item #4 'HP_NO_MIC'
; Item #5 'BT'
; Item #6 'SPK_HP'
; Item #7 'RING_SPK'
; Item #8 'RING_HP'
; Item #9 'RING_HP_NO_MIC'
; Item #10 'RING_SPK_HP'
: values=6

b) 获取指定声卡可控属性信息

$ amixer -c 0 cset numid=1,iface=MIXER,name='Playback Path' 4
numid=1,iface=MIXER,name='Playback Path'
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'OFF'
; Item #1 'RCV'
; Item #2 'SPK'
; Item #3 'HP'
; Item #4 'HP_NO_MIC'
; Item #5 'BT'
; Item #6 'SPK_HP'
; Item #7 'RING_SPK'
; Item #8 'RING_HP'
; Item #9 'RING_HP_NO_MIC'
; Item #10 'RING_SPK_HP'
: values=4

1.2 设置系统媒体音量

$ amixer
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 65536 [100%] [on]
Front Right: Playback 65536 [100%] [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch cswitch-joined
Capture channels: Front Left - Front Right
Limits: Capture 0 - 65536
Front Left: Capture 65536 [100%] [on]
Front Right: Capture 65536 [100%] [on]

a) 设置静音、解决静音

# 播放音频静音
amixer --set 'Master' mute
# 录音静音
amixer --set 'Capture' mute

# 解除播放静音
amixer --set 'Master' unmute
# 接触录音静音
amixer --set 'Capture' unmute

b) 设定音量

amixer sset 'Master',0 100%,80% unmute
# -c 选择声卡, 不设置则为默认
# 'Master',0:Simple mixer control 'Master',0
# 100%,80% : 左声道、右声道音量

2. amixer

amixer - command-line mixer for ALSA soundcard driver.

$ amixer --help
Usage: amixer <options> [command]

Available options:
  -h,--help       this help
  -c,--card N     select the card
  -D,--device N   select the device, default 'default'
  -d,--debug      debug mode
  -n,--nocheck    do not perform range checking
  -v,--version    print version of this program
  -q,--quiet      be quiet
  -i,--inactive   show also inactive controls
  -a,--abstract L select abstraction level (none or basic)
  -s,--stdin      Read and execute commands from stdin sequentially
  -R,--raw-volume Use the raw value (default)
  -M,--mapped-volume Use the mapped volume

Available commands:
  scontrols       show all mixer simple controls
  scontents       show contents of all mixer simple controls (default command)
  sset sID P      set contents for one mixer simple control
  sget sID        get contents for one mixer simple control
  controls        show all controls for given card
  contents        show contents of all controls for given card
  cset cID P      set control contents for one control
  cget cID        get control contents for one control

Tips

a) 声卡数量信息可根据系统信息查看

cat /proc/asound/cards
 0 [rockchiprk809co]: rockchip_rk809- - rockchip,rk809-codec
                      rockchip,rk809-codec

b) -c 参数声卡名或数字编号, 也就是‘0’ 或者’rockchiprk809co’
c) sset/sget 的参数对应 "contents“的内容,cset/cget的参数对应 controls的属性文章来源地址https://www.toymoban.com/news/detail-418460.html

到了这里,关于Linux 音频路由适配 (amixer)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • rk3568 适配rk809音频

    RK809是一款集成了多种功能的电源管理芯片,主要用于笔记本电脑、平板电脑、工控机等设备的电源管理。以下是RK809的详细功能介绍: 电源管理:控制电源的开关、电压、电流等参数,保证设备的稳定运行。 音频管理:支持PDM/I2S音频播放和录制,不仅支持耳机录音和播放用

    2024年02月06日
    浏览(52)
  • uniapp音频组件,适配ios,Android

    有个需求是需要有音频的时长和拖动进度,我对音频使用只停留在使用audio标签,在uniapp插件市场未找到适合的组件,在通过百度只找到下面的组件,了解使用uniapp简单音频组件上提到的音频组件后进行优化如下: 1.不能在更新视频链接后更新音频组件的相关信息,使用了w

    2024年02月16日
    浏览(72)
  • uniapp音频组件,适配ios,Android,H5

    有个需求是需要有音频的时长和拖动进度,我对音频使用只停留在使用audio标签,在uniapp插件市场未找到适合的组件,在通过百度只找到下面的组件,了解使用uniapp简单音频组件上提到的音频组件后进行优化如下: 1.不能在更新视频链接后更新音频组件的相关信息,使用了w

    2024年02月05日
    浏览(70)
  • Linux策略路由详解

    在Linux中,我们通常使用 route 命令来做路由信息的管理。但是该命令仅仅只能用于基本路由信息的管理,面对功能更加强大的基于策略的路由机制, route 命令就显得捉襟见肘。在传统路由算法中,只能基于目的地址进行路由选择。但是如果对路由选择有更复杂的要求,比如针

    2023年04月14日
    浏览(33)
  • Linux 路由表解密:详解路由表的构成与作用

    Linux是一种开源的操作系统,自由软件,使用范围非常广泛。Linux中有一个非常重要的功能,就是路由表。路由表是一张表格,用来描述网络中各个主机之间的连接关系。在Linux中,路由表的作用是将数据包从源地址发送到目标地址,并决定所经过的路由器。 目录 一、Linux路由

    2024年02月04日
    浏览(29)
  • Linux与Windows下追踪网络路由:traceroute、tracepath与tracert命令详解

    在进行网络诊断或排查问题时,了解数据包从源主机到目标主机之间的具体传输路径至关重要。Linux系统提供了 traceroute 和 tracepath 工具来实时显示链路路径信息,而Windows则使用了 tracert 命令实现相同的功能。本文将详细介绍这三个命令的用法及其在不同操作系统中的应用。

    2024年02月01日
    浏览(41)
  • AAOS 音频动态路由

    基本概念 Android 管理来自 Android 应用的声音,同时控制这些应用,并根据其声音类型将声音路由到 HAL 中的输出设备:整个框架如下图 逻辑声音流 使用音频属性进行标记,应用可以有一个或多个通过标准 Android API(如用于控制焦点的 AudioManager或用于在线播放的 MediaPlayer)发

    2024年02月09日
    浏览(38)
  • 【Linux】银河麒麟V10 ARM架构_安装JDK8-kylinV10(Kylin Linux Advanced Server V10 )操作系统(CentOS8)

    🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🍁🪁🍁 感谢点赞和关注 ,每天

    2024年02月05日
    浏览(70)
  • iOS17 隐私协议适配详解

            网上搜了很多文章,总算有点头绪了。其实隐私清单最后做出来就是一个plist文件。找了几个常用三方已经配好的看了看,比着做就好了。 WWDC23 中关于隐私部分的更新(WWDC23 隐私更新官网),其中提到了第三方 SDK 的隐私清单和签名,并且要求开发者自 2024 年春

    2024年04月14日
    浏览(39)
  • Java 适配器模式详解

    什么是适配器模式? 适配器模式是一种结构型设计模式,其用途是将一个类的接口转换成客户端所期望的另一种接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式的实现方式 适配器模式通过创建一个实现目标接口的适配器类来实

    2024年02月03日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包