Ubuntu设设置默认外放和麦克风设备

news2024/9/30 11:33:49

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、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-sinks

1 sink(s) available.
  * index: 1
	name: <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_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 9039
	volume: front-left: 32768 /  50% / -18.06 dB,   front-right: 32768 /  50% / -18.06 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max request: 0 KiB
	max rewind: 0 KiB
	monitor source: 1
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
	card: 1 <alsa_card.pci-0000_00_1b.0>
	module: 23
	properties:
		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-sources

2 source(s) available.
    index: 1
	name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
	driver: <module-alsa-card.c>
	flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: IDLE
	suspend cause: (none)
	priority: 1030
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 344 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 2000.00 ms; range is 0.50 .. 2000.00 ms
	monitor_of: 1
	card: 1 <alsa_card.pci-0000_00_1b.0>
	module: 23
	properties:
		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: 2
	name: <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_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 9039
	volume: front-left: 32768 /  50% / -18.06 dB,   front-right: 32768 /  50% / -18.06 dB
	        balance 0.00
	base volume: 13076 /  20% / -42.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
	card: 1 <alsa_card.pci-0000_00_1b.0>
	module: 23
	properties:
		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、有什么疑问的可以留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1235055.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成原理-主存储器与CPU的连接

文章目录 知识总览单块存储芯片与CPU的连接位扩展&#xff08;存储字的位数&#xff09;字扩展&#xff08;存储字数&#xff09;关于线选法和片选法字位同时扩展总结补充&#xff1a;译码器 知识总览 单块存储芯片与CPU的连接 数据总线&#xff0c;地址总线&#xff0c;片选线…

改进YOLOv8:结合Biformer——基于动态稀疏注意力构建高效金字塔网络架构

🗝️YOLOv8实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv8:我的专业笔记与技术总结   -- YOLOv8轻松上手, 适用技术小白,文章代码齐全,仅需 …

2023年【上海市安全员C3证】考试内容及上海市安全员C3证复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 上海市安全员C3证考试内容是安全生产模拟考试一点通总题库中生成的一套上海市安全员C3证复审考试&#xff0c;安全生产模拟考试一点通上上海市安全员C3证作业手机同步练习。2023年【上海市安全员C3证】考试内容及上海…

【paddlepaddle】

安装paddlepaddle 报错 ImportError: /home/ubuntu/miniconda3/envs/paddle_gan/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /home/ubuntu/miniconda3/envs/paddle_gan/lib/python3.8/site-packages/paddle/fluid/libpaddle.so) 替换 /home/ubu…

《微信小程序开发从入门到实战》学习二十一

3.3 开发创建投票页面 3.3.9 使用picker选择器组件 使用picker选择器组件增加一个设置截止时间的功能。picker是一个从底部弹出的滚动选择器组件。picker通用属性如下&#xff1a; mode 选择器类型(selector、multiSelector、time、date、region) disabled …

阿里巴巴对裁员谣言报警

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 前两天王自如言论事件&#xff0c;格力选择了报警&#xff0c;称高管遭到姊妹集体侮辱诽谤。 而这两天&#xff0c;阿里巴巴也报警了&#xff0c;原因是网传阿里巴巴要裁员25000人。 咱不公关了…

简单php反序列化实现执行代码

简单php反序列化实现执行代码 反序列化举例 首先定义类和对象&#xff0c;然后输出序列化和反序列化结果看看这是个什么东西 <?phpclass Stu{public $name;public $age;public $sex;public $score;}$stu1 new Stu();$stu1->name "order";$stu1->age …

美团面试:微服务如何拆分?原则是什么?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如美团、字节、如阿里、滴滴、极兔、有赞、希音、百度、网易的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 微服务如何拆分&#xff1f; 微服务拆分的规范和原则…

对象中扩展运算符的作用

1.对象的合并 let o1 {name: "张三",age: 18,brother: {name: "李四",age: 19,},};//属性不重复let o2 {hobby: "打篮球",};console.log({ ...o1, ...o2 });//属性重复&#xff0c;后面对象的属性会覆盖前面的属性let o3 {name: "王五&q…

Continuity” of stochastic integral wrt Brownian motion

See https://imathworks.com/math/math-continuity-of-stochastic-integral-wrt-brownian-motion/

抽象工厂设计模式是什么?什么是 Abstract Factory 抽象工厂设计模式?Python 抽象工厂设计模式示例代码

什么是 Abstract Factory 抽象工厂设计模式&#xff1f; 抽象工厂设计模式是一种创建型设计模式&#xff0c;旨在提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定其具体类。它允许客户端使用抽象的接口创建一组相关对象&#xff0c;而无需关注实际的对象实…

XDAG同步节点部署

系统环境要求 JDK : v17 Maven : v3.9.1-v3.9.5 MySQL : v8.0系列 1、MySQL8.0安装 1&#xff09;docker-compose安装详情 MySQL安装 2&#xff09;配置数据库账号密码及键表 # docker exec -it mysql8 /bin/bash # root0286a1fd60e6:/# mysql -uroot -p Enter password:…

【开源】基于Vue.js的教学过程管理系统

项目编号&#xff1a; S 054 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S054&#xff0c;文末获取源码。} 项目编号&#xff1a;S054&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2…

YOLOv7训练:_pickle.UnpicklingError: STACK_GLOBAL requires str

在YOLOv7训练过程中&#xff0c;出现以下错误&#xff1a; 原因就是&#xff1a; 这个数据集在其他地方运行过产生了**.cache**文件 解决方案&#xff08;亲测有效&#xff09;&#xff1a; 删除数据集中的所有 label.cache文件&#xff0c;比如训练集、验证集、测试集都删…

【AICFD案例教程】IGBT对流换热分析

AICFD是由天洑软件自主研发的通用智能热流体仿真软件&#xff0c;用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程&#xff0c;帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

【JavaEE初阶】 JavaScript基础语法——贰

文章目录 &#x1f332;条件语句&#x1f6a9;if 语句&#x1f6a9;三元表达式&#x1f6a9;switch&#x1f6a9;循环语句&#x1f388;while 循环&#x1f388;continue&#x1f388;break&#x1f388;for 循环 &#x1f340;数组&#x1f6a9;创建数组&#x1f6a9;获取数组…

【cpolar】TortoiseSVN如何安装并实现公网提交文件到本地SVN服务器

&#x1f3a5; 个人主页&#xff1a;深鱼~ &#x1f525;收录专栏&#xff1a;cpolar &#x1f304;欢迎 &#x1f44d;点赞✍评论⭐收藏 文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控…

数据结构——散列表

参考书籍&#xff1a; 《数据结构与抽象&#xff1a;Java语言描述》 第四版 一、背景知识 散列&#xff08;hashing&#xff09;&#xff1a;是仅利用项的查找键&#xff0c;无需查找就可确定其下标的一项技术散列表&#xff08;hash table&#xff09;&#xff1a;数组散列索引…

设计循环队列(c语言)

前言 在上一篇文章中我们了解了关于循环队列的基本特性&#xff1a; 1、当rear front时&#xff0c;表示队列为空 2、当rear 1 front时&#xff0c;表示队列已满 当我们需要实现循环队列时&#xff0c;通常会选择使用链表或数组来存储队列中的元素。而使用数组来实现循环队…

OGG-01224 Address already in use 问题

ERROR OGG-01224 Oracle GoldenGate Manager for Oracle, mgr.prm: Address already in use. ERROR OGG-01668 Oracle GoldenGate Manager for Oracle, mgr.prm: PROCESS ABENDING. 查看端口被占用情况&#xff1a; [rootcenterone ogg]# lsof -i:7809原因mgr 7809 端口被占…