Ubuntu设设置默认外放和麦克风设备
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、pulseaudio 是什么?
- 二、配置外放
- 1.查看所有的外放设备
- 2.设定默认的外放设备
- 3.设定外放设备的声音强度
- 4.设定外放设备静音
- 三、配置麦克风
- 1.查看所有的麦克风设备
- 2.设置默认麦克风设备
- 3.设置麦克风设备声音强度
- 4.设置麦克风设备静音
- 总结
前言
最近在做一个项目,需要使用外放播放声音和麦克风拾取录音,然后还要用到摄像头。采购了一个麦克风和一个USB摄像头。结果部署过程中发现摄像头自带的麦克风被识别为默认麦克风,而且每次开机几乎都是这样,然后专业麦克风必须在声音页面选择才能指定为默认麦克风。
最终实现的需求是交付给客户后可以直接使用,肯定不可能让客户每次开机手动选择一下。
没错,我们的项目就是每天定时拉闸关机,早上拉闸自启动!
一、pulseaudio 是什么?
PulseAudio is a networked low-latency sound server for Linux, POSIX and Windows systems.
Ubuntu桌面版系统使用的就是pulseaudio ,我们的命令也和这个有关系。
二、配置外放
1.查看所有的外放设备
pacmd list-sinks1 sink(s) available.* index: 1name: <alsa_output.pci-0000_00_1b.0.analog-stereo>driver: <module-alsa-card.c>flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCYstate: SUSPENDEDsuspend cause: IDLEpriority: 9039volume: front-left: 32768 / 50% / -18.06 dB, front-right: 32768 / 50% / -18.06 dBbalance 0.00base volume: 65536 / 100% / 0.00 dBvolume steps: 65537muted: nocurrent latency: 0.00 msmax request: 0 KiBmax rewind: 0 KiBmonitor source: 1sample spec: s16le 2ch 44100Hzchannel map: front-left,front-rightStereoused by: 0linked by: 0configured latency: 0.00 ms; range is 0.50 .. 2000.00 mscard: 1 <alsa_card.pci-0000_00_1b.0>module: 23properties:alsa.resolution_bits = "16"device.api = "alsa"device.class = "sound"alsa.class = "generic"alsa.subclass = "generic-mix"alsa.name = "CX20751/2 Analog"alsa.id = "CX20751/2 Analog"alsa.subdevice = "0"alsa.subdevice_name = "subdevice #0"alsa.device = "0"alsa.card = "1"alsa.card_name = "HDA Intel PCH"alsa.long_card_name = "HDA Intel PCH at 0xc4314000 irq 50"alsa.driver_name = "snd_hda_intel"device.bus_path = "pci-0000:00:1b.0"sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"device.bus = "pci"device.vendor.id = "8086"device.vendor.name = "Intel Corporation"device.product.id = "9ca0"device.product.name = "Wildcat Point-LP High Definition Audio Controller"device.form_factor = "internal"device.string = "front:1"device.buffering.buffer_size = "352800"device.buffering.fragment_size = "176400"device.access_mode = "mmap+timer"device.profile.name = "analog-stereo"device.profile.description = "Analog Stereo"device.description = "Built-in Audio Analog Stereo"module-udev-detect.discovered = "1"device.icon_name = "audio-card-pci"ports:analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)properties:device.icon_name = "audio-speakers"analog-output-headphones: Headphones (priority 9900, latency offset 0 usec, available: no)properties:device.icon_name = "audio-headphones"active port: <analog-output-speaker>
我使用的是笔记本内置外放,也没插额外的外放,所以列表里只有一个。
注意index前面带星号的设备,那就是你当前的选定设备。
2.设定默认的外放设备
设定方法有两个,一是根据index来设定,二是根据name来设定。这里推荐使用name,因为index会变,不是说随时会变,而是每次开机都可能不一样,所以这个方法确认不是好方法。但,也不是说完全不行,只是需要经过稍微复杂点的处理,比如根据awk等工具预处理,找到你想要的那个index再使用,麻烦肯定是麻烦点。
而使用name设定就没有这个问题,前提是你没有改动过驱动等配置。
#必须使用当前登录桌面的用户
pactl set-default-sink <name>
#示例
pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
成功shell返回0,失败查看具体提示
3.设定外放设备的声音强度
先看下接受的数据格式:
VOLUME can be specified as an integer (e.g. 2000, 16384), a linear factor
(e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a decibel value (e.g. 0dB,
20dB). If the volume specification start with a + or - the volume adjustment will
be relative to the current sink volume. A single volume value affects all channels;
if multiple volume values are given their number has to match the sink’s number of
channels.
简单翻一下:支持整数,小数,百分比,分贝。这里我选择百分比,没别的原因,因为简单。其他的方式不要滥用,最好带上耳塞,免得震聋耳朵!
#必须使用当前登录桌面的用户
pactl set-sink-volume <外放name> <百分比>
#示例
pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 50%
执行成功shell返回0,失败查看具体提示。
4.设定外放设备静音
理论上声音设置为0%也可以的,但是那不是真正的静音,至少0%音量或许只是声音特别小。
#必须使用当前登录桌面的用户
pactl set-sink-mute <name> 1
#示例
pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 1

仔细看喇叭图标上多了个禁止斜杠。
下面是声音0%,不静音

这下看出差别了吧!
三、配置麦克风
1.查看所有的麦克风设备
#必须使用当前登录桌面的用户
pacmd list-sources2 source(s) available.index: 1name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>driver: <module-alsa-card.c>flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCYstate: IDLEsuspend cause: (none)priority: 1030volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dBbalance 0.00base volume: 65536 / 100% / 0.00 dBvolume steps: 65537muted: nocurrent latency: 0.00 msmax rewind: 344 KiBsample spec: s16le 2ch 44100Hzchannel map: front-left,front-rightStereoused by: 0linked by: 0configured latency: 2000.00 ms; range is 0.50 .. 2000.00 msmonitor_of: 1card: 1 <alsa_card.pci-0000_00_1b.0>module: 23properties:device.description = "Monitor of Built-in Audio Analog Stereo"device.class = "monitor"alsa.card = "1"alsa.card_name = "HDA Intel PCH"alsa.long_card_name = "HDA Intel PCH at 0xc4314000 irq 50"alsa.driver_name = "snd_hda_intel"device.bus_path = "pci-0000:00:1b.0"sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"device.bus = "pci"device.vendor.id = "8086"device.vendor.name = "Intel Corporation"device.product.id = "9ca0"device.product.name = "Wildcat Point-LP High Definition Audio Controller"device.form_factor = "internal"device.string = "1"module-udev-detect.discovered = "1"device.icon_name = "audio-card-pci"* index: 2name: <alsa_input.pci-0000_00_1b.0.analog-stereo>driver: <module-alsa-card.c>flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCYstate: SUSPENDEDsuspend cause: IDLEpriority: 9039volume: front-left: 32768 / 50% / -18.06 dB, front-right: 32768 / 50% / -18.06 dBbalance 0.00base volume: 13076 / 20% / -42.00 dBvolume steps: 65537muted: nocurrent latency: 0.00 msmax rewind: 0 KiBsample spec: s16le 2ch 44100Hzchannel map: front-left,front-rightStereoused by: 0linked by: 0configured latency: 0.00 ms; range is 0.50 .. 2000.00 mscard: 1 <alsa_card.pci-0000_00_1b.0>module: 23properties:alsa.resolution_bits = "16"device.api = "alsa"device.class = "sound"alsa.class = "generic"alsa.subclass = "generic-mix"alsa.name = "CX20751/2 Analog"alsa.id = "CX20751/2 Analog"alsa.subdevice = "0"alsa.subdevice_name = "subdevice #0"alsa.device = "0"alsa.card = "1"alsa.card_name = "HDA Intel PCH"alsa.long_card_name = "HDA Intel PCH at 0xc4314000 irq 50"alsa.driver_name = "snd_hda_intel"device.bus_path = "pci-0000:00:1b.0"sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"device.bus = "pci"device.vendor.id = "8086"device.vendor.name = "Intel Corporation"device.product.id = "9ca0"device.product.name = "Wildcat Point-LP High Definition Audio Controller"device.form_factor = "internal"device.string = "front:1"device.buffering.buffer_size = "352800"device.buffering.fragment_size = "176400"device.access_mode = "mmap+timer"device.profile.name = "analog-stereo"device.profile.description = "Analog Stereo"device.description = "Built-in Audio Analog Stereo"module-udev-detect.discovered = "1"device.icon_name = "audio-card-pci"ports:analog-input-internal-mic: Internal Microphone (priority 8900, latency offset 0 usec, available: unknown)properties:device.icon_name = "audio-input-microphone"analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: no)properties:device.icon_name = "audio-input-microphone"active port: <analog-input-internal-mic>
2.设置默认麦克风设备
和外放一样不建议使用index,原因就是重启顺序可能会变,还是使用name。
假如你不止插入一个麦克风设备(比如3.5耳机孔+USB麦克风并存)。你只需要记住你需要设置的麦克风设备的名字即可。
我这里是index前面带星号的设备,就是我目前的麦克风设备。
#必须使用当前登录桌面的用户
pactl set-default-sources <name>
#示例
pactl set-default-sources alsa_input.pci-0000_00_1b.0.analog-stereo
执行成功shell返回0,失败查看具体提示。
3.设置麦克风设备声音强度
基本和外放一样,这里直接贴命令了,不赘述了。
多说一句,尽量不要调太高,会出现破音,基本能够满足需要就行了。
#必须使用当前登录桌面的用户
pactl set-source-volume <name> <百分比>
#示例
pactl set-source-volume alsa_input.pci-0000_00_1b.0.analog-stereo 50%
执行成功shell返回0,失败查看具体提示。
4.设置麦克风设备静音
基本和外放一样,这里直接贴命令了,不赘述了。
#必须使用当前登录桌面的用户
pactl set-source-mute <name> 1
#示例
pactl set-source-mute alsa_input.pci-0000_00_1b.0.analog-stereo 1
执行成功shell返回0,失败查看具体提示。
总结
1、注意不能用root权限,需要你登录desktop的那个用户执行命令
2、linux上搞外设比windows还是差点,你只能指望有声音,不能指望它能带给你什么惊喜,可能是糟心呢。小声告诉你bug不少!
3、有什么疑问的可以留言
相关文章:
Ubuntu设设置默认外放和麦克风设备
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pulseaudio 是什么?二、配置外放1.查看所有的外放设备2.设定默认的外放设备3.设定外放设备的声音强度4.设定外放设备静音 三、配置麦克风1.查看…...
【教程】Sqlite迁移到mysql(django)
1、先将sqlite db文件导出sql sqlite3 db.sqlite3 .dump>output.sql db.sqlite3 是 sqlite 数据库文件 output.sql是导出sql文件的名称 2、sql文件转换、处理 sed s/AUTOINCREMENT/AUTO_INCREMENT/g output.sql | sed s/datetime/timestamp/g | sed s/INTEGER/int/g &g…...
【漏洞复现】DPTech VPN存在任意文件读取漏洞
漏洞描述 DPtech是在网络、安全及应用交付领域集研发、生产、销售于一体的高科技企业。DPtech VPN智能安全网关是迪普科技面向广域互联应用场景推出的专业安全网关产品,集成了IPSec、SSL、L2TP、GRE等多种VPN技术,支持国密算法,实现分支机构…...
CentOS 8搭建WordPress
步骤 1: 更新系统 确保你的系统是最新的,使用以下命令更新: bashCopy code sudo dnf update 步骤 2: 安装Apache bashCopy code sudo dnf install httpd 启动Apache,并设置开机自启动: bashCopy code sudo systemctl star…...
服务器安全防护导致使用多款行业顶尖软件搭配使用,还是单独一款解决呢?
如今,在全球各地,数以千计的公司、组织和个人都依赖于服务器来存储和访问重要数据,托管应用程序,以及提供服务。但是,这些服务器不断面临着来自网络黑客的威胁,因此服务器的安全成为了当务之急。 在这种情…...
【Spring篇】Spring注解式开发
本文根据哔哩哔哩课程内容结合自己自学所得,用于自己复习,如有错误欢迎指正; 我在想用一句话激励我自己努力学习,却想不出来什么惊为天人、精妙绝伦的句子,脑子里全是上课老师想说却没想起的四个字 “ 唯手熟尔 ”&am…...
14.(vue3.x+vite)组件间通信方式之pinia
前端技术社区总目录(订阅之前请先查看该博客) 示例效果 Pinia简介 Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。 Pinia与Vuex比较 (1)Vue2和Vue3都支持,这让我们同时使用Vue2和Vue3的小伙伴都能很快上手。 (2)pinia中只有state、getter、action,抛弃了Vu…...
DolphinDB 浙商银行 | 第二期现场培训圆满结束
自 DolphinDB 高级工程师计划开展以来,客户们纷纷响应,除了定期收看我们每周三开设的线上公开课外,也有部分客户报名参加了 “总部工程师培训计划” 。 上周,我们迎来了总部培训的第二期学员:来自浙商银行的4位策略研…...
DBS note4:Buffer Management
目录 1、介绍 2、缓冲池 3、处理页面请求 4、LRU替换和时钟策略 1)顺序扫描性能 - LRU 5、最近最常使用替换策略(MRU Replacement) 1)Sequential Scanning Performance - MRU 6、练习题 1)判断真假 2…...
Linux 中 .tar 和 tar.gz 的区别
1、前言 有时候你会发现,即便是有些拥有 3 年左右工作经验的运维或开发工程师对 .tar 和 .tar.gz 的区别并不是很清楚。.tar 和 .tar.gz 是在 Linux 系统中用于打包和压缩文件的两种常见格式。它们之间的主要区别在于压缩算法和文件扩展名。 2、区别 .tar .tar 是…...
区域人员超限AI算法的介绍及TSINGSEE视频智能分析技术的行业应用
视频AI智能分析已经渗透到人类生活及社会发展的各个方面。从生活中的人脸识别、停车场的车牌识别、工厂园区的翻越围栏识别、入侵识别、工地的安全帽识别、车间流水线产品的品质缺陷AI检测等,AI智能分析技术无处不在。在某些场景中,重点区域的人数统计与…...
asp.net mvc点餐系统餐厅管理系统
1. 主要功能 ① 管理员、收银员、厨师的登录 ② 管理员查看、添加、删除菜品类型 ③ 管理员查看、添加、删除菜品,对菜品信息进行简介和封面的修改 ④ 收银员浏览、搜索菜品,加入购物车后进行结算,生成订单 ⑤ 厨师查看待完成菜品信息…...
SpringBoot 使用多SqlSessionFactory下的事务问题
如下配置了两个数据源: spring:datasource:ds1:jdbc-url: jdbc:mysql://localhost:3307/spring-boot-demos?serverTimezoneUTC&useUnicodetrue&characterEncodingutf8&useSSLfalse&allowPublicKeyRetrievaltrueusername: rootpassword: passwordd…...
浏览器内置NoSQL数据库IndexedDB
IndexedDB - 浏览器内容数据库 indexedDB 是一种浏览器内置的NoSQL数据库,它使用键值对存储数据,用于在客户端存储大量结构化数据。它支持离线应用程序和高效的数据检索,可以在 Web 应用程序中替代传统的 cookie 和 localStorage。 IndexDB是…...
网络参考模型与标准协议(二)-TCP/IP对等模型详细介绍
应用层 应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU ( Paket Data Unit,协议数据单元)彼此交换信…...
万宾科技智能井盖传感器,预防城市道路安全
随着城市交通的不断发展和城市化进程的加速推进,城市道路安全问题日益凸显。市政井盖作为城市道路的一部分,承担着重要的交通安全保障职责。然而传统的市政井盖管理方式存在许多不足。针对这些问题政府需要采取适当的措施,补足传统管理方式的…...
GCC/Make/CMake 工具链
阅读前可以思考的问题:(答案在文章的最后面,小白可以略过) GCC/Make/CMake是什么关系? 一个C程序编译为一个可执行文件,需要哪些过程? #include语句所引入的库,如何才能找到对应的完整源代码文…...
GO抽象工厂模式
既然工厂模式每个产品都需要实现对应的工厂类去生成相关实例,提取产品的共性,提高代码的内聚性, 就是抽象工厂模式要干的。在抽象工厂中,依然是不同产品对应不同的工厂类,但可以尽可能将具有相同共性的产品类别合在一起…...
Linux 磁盘/分区/修复 命令
目录 1. lsblk(list block devices) 2. fdisk(fragment disk) 3. gdisk 4. mkfs(make filesystem) 5. df(display file-system disk space usage) 6. du 7. fsck(file-sy…...
php一句话木马免杀
php一句话木马免杀 针对于php一句话木马做免杀: 利用php动态函数的特性,将危险函数拆分成字符,最终使用字符串拼接的方式,然后重新拼接,后加括号执行代码,并且可以使用花指令进行包装,如无限i…...
保姆级教程:在Ubuntu 22.04上搞定tiny-cuda-nn,加速你的NeRF模型训练
保姆级教程:在Ubuntu 22.04上搞定tiny-cuda-nn,加速你的NeRF模型训练 当你在复现最新的NeRF论文时,是否曾被漫长的训练时间劝退?作为2023年最火的3D重建技术之一,NeRF对计算资源的需求让许多研究者头疼。而tiny-cuda-…...
从音频采集到FPGA:手把手教你复刻一个8通道AD采样系统(附完整代码与PCB)
从音频采集到FPGA:手把手教你复刻一个8通道AD采样系统(附完整代码与PCB) 在嵌入式系统与信号处理领域,多通道数据采集一直是工程师面临的核心挑战之一。无论是工业自动化中的传感器网络,还是医疗设备中的生物电信号监测…...
5步让Windows字体拥有macOS般的清晰锐利:MacType终极配置指南
5步让Windows字体拥有macOS般的清晰锐利:MacType终极配置指南 【免费下载链接】mactype Better font rendering for Windows. 项目地址: https://gitcode.com/gh_mirrors/ma/mactype 还在为Windows系统下模糊的字体显示效果而烦恼吗?MacType作为一…...
深入BertTokenizer:搞懂中文BERT的5个特殊Token([CLS]、[SEP]等)到底怎么用?
深入解析中文BERT的5个核心特殊标记:从原理到实战 第一次看到BERT代码里那些神秘的[CLS]和[SEP]时,我完全不明白它们存在的意义。直到某个深夜调试模型时,因为漏加了一个[SEP]导致准确率下降了15%,才真正体会到这些特殊标记的重要…...
创业团队如何利用 Taotoken 低成本试错不同大模型
创业团队如何利用 Taotoken 低成本试错不同大模型 1. 初创团队面临的多模型选型挑战 对于资源有限的创业团队而言,快速验证产品原型是生存的关键。在构建基于大语言模型的应用时,团队往往面临模型选型难题:不同模型在理解能力、生成质量、响…...
在Ubuntu 20.04上从零部署BEVDet:一份给自动驾驶研究新手的保姆级避坑指南
在Ubuntu 20.04上从零部署BEVDet:一份给自动驾驶研究新手的保姆级避坑指南 自动驾驶领域近年来发展迅猛,其中鸟瞰图(BEV)感知技术因其独特的视角优势,成为环境感知任务中的热门研究方向。BEVDet作为这一领域的代表性算…...
观察Taotoken在高并发测试下的API响应稳定性表现
观察Taotoken在高并发测试下的API响应稳定性表现 1. 测试环境与场景设计 本次测试旨在模拟真实业务场景下的高并发请求,观察Taotoken API的响应表现。测试环境采用分布式压力测试工具,部署在多个地域的云服务器上,以模拟不同网络条件下的用…...
3个关键步骤掌握Blender VRM插件:从零开始创建专业虚拟角色
3个关键步骤掌握Blender VRM插件:从零开始创建专业虚拟角色 【免费下载链接】VRM-Addon-for-Blender VRM Importer, Exporter and Utilities for Blender 2.93 to 5.1 项目地址: https://gitcode.com/gh_mirrors/vr/VRM-Addon-for-Blender 想要在Blender中轻…...
【IEEE出版、连续6届见刊检索】第七届大数据、人工智能与软件工程国际学术会议(ICBASE 2026)
第七届大数据、人工智能与软件工程国际学术会议(ICBASE 2026)拟于2026年6月12-14日在中国-沈阳(线上线下)举行。会议主要围绕大数据、人工智能与软件工程等研究领域展开讨论。会议旨在为从事大数据、人工智能与软件工程研究的专家…...
平行宇宙数据同步协议:软件测试的多维挑战与验证体系
在分布式系统、元宇宙与智能物联深度融合的今天,软件运行生态正从单一的单体架构,演化为由不同设备终端、云边端环境、数据副本集群乃至用户感知节点构成的“平行宇宙”协同系统。数据同步协议作为维系这些宇宙间一致性的核心纽带,其可靠性直…...
