当前位置: 首页 > news >正文

音频开发中常见的知识体系

        在 Linux 系统中,/dev/snd 目录包含与声音设备相关的文件。每个文件代表系统中的一部分音频硬件或音频控制接口。以下是你列出的文件及其含义:

一.基本术语

        样本长度(sample):样本是记录音频数据最基本的单位,计算机对每个通道采样量化时数字比特位数,常见的有8位和16位。

        通道数(channel):该参数为1表示单声道,2则是立体声。帧(frame):帧记录了一个声音单元,其长度为样本长度与通道数的乘积,一段音频数据就是由苦干帧组成的。

        采样率(rate):每秒钟采样次数,该次数是针对帧而言,常用的采样率如8KHz的人声, 44.1KHz的mp3音乐, 96Khz的蓝光音频。

        周期(period):音频设备一次处理所需要的桢数,对于音频设备的数据访问以及音频数据的存储,都是以此为单位。

        交错模式(interleaved):是一种音频数据的记录方式。在交错模式下,数据以连续桢的形式存放,即首先记录完桢1的左声道样本和右声道样本(假设为立体声格式),再开始桢2的记录。而在非交错模式下,首先记录的是一个周期内所有桢的左声道样本,再记录右声道样本,数据是以连续通道的方式存储。不过多数情况下,我们只需要使用交错模式就可以了。

        period(周期): 硬件中中断间的间隔时间。它表示输入延时。

        比特率(Bits Per Second):比特率表示每秒的比特数,比特率=采样率×通道数×样本长度

二.ALSA的API构成

ALSA API可以分解成以下几个主要的接口:

        控制接口:提供管理声卡注册和请求可用设备的通用功能

        PCM接口:管理数字音频回放(playback)和录音(capture)的接口。本文后续总结重点放在这个接口上,因为它是开发数字音频程序最常用到的接口。

        Raw MIDI接口:支持MIDI(Musical Instrument Digital Interface),标准的电子乐器。这些API提供对声卡上MIDI总线的访问。这个原始接口基于MIDI事件工作,由程序员负责管理协议以及时间处理。

        定时器(Timer)接口:为同步音频事件提供对声卡上时间处理硬件的访问。

        时序器(Sequencer)接口混音器(Mixer)接口 

三.by-path/

        这个目录包含了音频设备的路径符号链接。它为每个音频设备创建了一个表示设备连接方式的符号链接,通常用于区分设备的物理位置,如与 USB、PCI、或者其他硬件接口的关系。

四.ALSA设备文件结构

        我们从alsa在linux中的设备文件结构开始我们的alsa之旅. 看看我的电脑中的alsa驱动的设备文件结构:

   controlC0, controlC1, controlC7, 等:这些文件是音频控制设备的接口。C0C1C7 等代表不同的声卡或音频设备编号。通过这些控制文件,你可以调整音量、选择音频源、设置静音等音频硬件的操作。

  • controlC0 是音频设备 0 的控制接口。
  • controlC1 是音频设备 1 的控制接口。
  • controlC7 是音频设备 7 的控制接口。
  1. pcmC0D0c, pcmC0D0p, pcmC1D0p, 等:这些文件是 PCM(脉冲编码调制)设备的接口,主要用于音频数据的播放和录制。

    • pcmC0D0cpcmC0D0p 分别是音频设备 0 上的输入和输出 PCM 接口。c 代表 capture(录音输入),p 代表 playback(播放输出)。
    • pcmC1D0p 是音频设备 1 的播放接口,pcmC7D0ppcmC7D1p 是音频设备 7 上的播放接口。
  2. timer:这个文件用于音频定时器的接口。在多媒体系统中,定时器用于同步音频播放、录制等任务。它管理音频设备的时间相关操作,确保音频数据流的正确时序。

        总结来说,/dev/snd 目录下的这些文件是 Linux 系统与声音硬件交互的接口,允许你进行音频的播放、录制以及控制。你可以通过这些文件进行音量控制、选择音频输入输出设备、以及管理音频流的定时等操作。

 五.音频设备信息

        你可以使用 catarecord, aplay 等工具来查看音频设备的详细信息。这会列出所有音频设备的列表,包括它们的卡号、名称以及其他详细信息。

cat  /proc/asound/cards

      

   使用 aplay 查看音频输出设备:

 aplay -l

        通过 aplay -l 命令列出的输出显示了系统中的所有音频播放硬件设备。每个设备都被分配了一个 卡号(card) 和一个 设备号(device),以及它们的 子设备(subdevices),这些信息用于描述设备的功能和音频流的配置。

 card 0: rockchiprk3308v [rockchip,rk3308-vad], device 0: dailink-multicodecs multicodec-0 [] Subdevices: 0/1 Subdevice #0: subdevice #0

  • card 0:这代表第 0 张声卡,名称是 rockchiprk3308v,它是 Rockchip RK3308 的音频设备。
  • device 0:这是第 0 个音频设备,名称为 dailink-multicodecs。该设备支持多种音频编解码(multicodec)。
  • Subdevices: 0/1:表示该设备支持的子设备数量。在此,只有一个子设备,且它当前不可用(0/1,表示有 1 个子设备但没有被使用)。
  • Subdevice #0:这是子设备的标识符,它是播放音频流的实体。

card 1: UAC1Gadget [UAC1_Gadget], device 0: UAC1_PCM [UAC1_PCM]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

  • card 1:这是第 1 张声卡,设备名为 UAC1Gadget,它是一个 USB 音频设备,通常用于 UAC(USB Audio Class)设备。
  • device 0:这是第 0 个设备,名为 UAC1_PCM,表示这是一个用于音频播放的设备。
  • Subdevices: 1/1:该设备只有一个子设备,并且该子设备当前可用(1/1)。
  • Subdevice #0:这是子设备的标识符,表示该设备当前可以用来播放音频流。

card 7: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
 

子设备的意义

  • Subdevices:每个音频设备可以有多个子设备。子设备用于处理实际的音频流。
    • 在播放音频时,子设备用于标识具体的音频输出通道。
    • 如果一个设备具有多个子设备,它可以同时处理多个音频流,每个子设备对应一个独立的音频输出。
    • 比如,Loopback 设备通常用于将音频信号从一个设备“捕获”并“播放”到同一设备的不同子设备上。这样可以进行音频信号的循环传输。

   使用 arecord 查看音频输入设备:

 arecord -l

         在 ALSA 中,设备标识符如 hw:0,0 代表的是第一个声卡(hw:0)的第一个设备(0)。在此基础上,你还可能遇到更多类似的标识符,例如 hw:0,1hw:1,0 等,这些代表了系统中的其他设备和声卡。每个设备对应系统中的一个音频接口或硬件设备。为了查找更多与 hw:0,0 类似的设备,你可以使用以下方法进行详细检查。

  • card 0: Rockchip [Rockchip Audio] 表示声卡 0(hw:0)是一个 Rockchip 音频设备。
  • device 0device 1 分别对应 hw:0,0hw:0,1 设备。
  • 如果还有其他卡(如 card 1: USB [USB Audio]),则会列出类似 hw:1,0hw:1,1 等设备。

        提供的 /proc/asound/devices 文件输出中,设备的编号和类型是以数字表示的。例如,0-01-0 等,这些并不是指 hw:0,0hw:1,0 这样的传统格式,而是 ALSA 使用的设备编号系统。

 

 

  • 设备编号:在设备编号中,017 等数字代表的是声卡编号,类似于 hw:0hw:1 等。
  • 子设备编号:设备编号后面的 - 和数字(如 0-01-0)表示子设备或设备上的接口。例如,0-0 就是声卡 0 上的第一个设备(hw:0,0),1-0 是声卡 1 上的第一个设备(hw:1,0)。

根据设备的编号和类型进一步确认设备。举例说明:

  • [0-0]: digital audio playback:表示声卡 0 上的第一个播放设备(即 hw:0,0)。
  • [0-0]: digital audio capture:表示声卡 0 上的第一个捕获设备(即 hw:0,0)。
  • [1-0]: digital audio playback:表示声卡 1 上的第一个播放设备(即 hw:1,0)。
  • [7-0]: digital audio playback:表示声卡 7 上的第一个播放设备(即 hw:7,0)。

 

相关文章:

音频开发中常见的知识体系

在 Linux 系统中,/dev/snd 目录包含与声音设备相关的文件。每个文件代表系统中的一部分音频硬件或音频控制接口。以下是你列出的文件及其含义: 一.基本术语 样本长度(sample):样本是记录音频数据最基本的单位,计算机对每个通道采…...

国内外人工智能AI工具网站大全(一键收藏,应有尽有)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 国内外人工智能AI工具网站大全(一键收藏,应有尽有) 摘要一、AI写作工具二、AI图像工具2.1、常用AI图像工具2.2、AI图片插画生成2.3、AI图片背景移…...

HB1910数字IP程控交换机generate.php存在RCE漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

基于Spring Boot的社区药房系统

一、系统背景与目的 随着医疗改革的深入和社区医疗服务的不断完善,社区药房在居民健康保障中扮演着越来越重要的角色。然而,传统的药房管理方式存在着库存管理混乱、药品销售不透明、客户信息管理不规范等问题。为了解决这些问题,基于Spring…...

level2逐笔委托查询接口

沪深逐笔委托队列查询 前置步骤 分配数据库服务器 查询模板 以下是沪深委托队列查询的请求模板&#xff1a; http://<数据库服务器>/sql?modeorder_book&code<股票代码>&offset<offset>&token<token>查询参数说明 参数名类型说明mo…...

固定资产分类,提升资产盘活效益

固定资产是企业长期使用的重要资源&#xff0c;涵盖范围广、种类多&#xff0c;不同的资产需要针对性管理。通过科学的分类与高效的盘活策略&#xff0c;不仅可以优化资源配置&#xff0c;还能提升企业资产的利用效率和经济效益。以下将详细解析固定资产的分类方式和盘活效益的…...

图像根据mask拼接时,边缘有色差 解决

目录 渐变融合(Feathering) 沿着轮廓线模糊: 代码: 泊松融合 效果比较好: 效果图: 源代码: 泊松融合,mask不扩大试验 效果图: 源代码: 两个图像根据mask拼接时,边缘有色差 渐变融合(Feathering) import numpy as np import cv2# 假设 img1, img2 是两个…...

练习题:一维数组

练习题 第一题 键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 代码 #include <stdio.h>int arr_home01() {int arr[10];int i,j,temp;printf("请输入10个测试整数&#xff1a;\n");int len sizeof(arr) / sizeof(arr[0]);for(i 0;i < …...

Linux系统安装node.js

一、node官网下载想要的node版本 https://nodejs.org/en/download/package-manager 二、将tar.xz文件解压 tar -xvf node-vxxx.tar.xz 三、改文件夹的名字&#xff0c;改成nodejs mv node-xxx nodejs 四、复制nodejs文件&#xff0c;并上传到linux 服务器 /usr/local 目录下…...

lettuce 默认情况下连接池参数不生效,源码分析

先说结论&#xff1a; 1.LettuceConnectionFactory 属性 shareNativeConnection 默认为true&#xff0c;要想连接池生效&#xff0c;该参数设置为false; 2.使用redisTemplate模版封装的pipeline没有意义&#xff0c;autoFlashCommands 默认为true;spring2.0开始默认使用lettuc…...

三维无人机航迹算法的目标函数如何确定

一、定义目标函数 在三维无人机航迹算法中,目标函数的确定通常基于具体的任务需求和飞行约束。以下是一个简单的例子,展示了如何为三维无人机航迹规划定义一个目标函数。 例子:最小化飞行时间和避障的三维无人机航迹规划 1.任务描述:无人机需要从起点飞到终点,同时避开一些…...

Linux docker离线部署

1. Docker下载 Docker下载地址&#xff1a;https://mirrors.dahuatech.com/docker-ce/。本文下载当前最新版本&#xff0c;链接如下&#xff1a;https://mirrors.dahuatech.com/docker-ce/linux/static/stable/aarch64/docker-27.4.0.tgz。 2. 安装Docker 将压缩包上传到服务器…...

短剧系统开发教程概要

引言 随着移动互联网的快速发展&#xff0c;短剧内容因其简短、精炼、情节紧凑的特点&#xff0c;吸引了大量观众的喜爱。为了满足市场需求&#xff0c;开发一款功能完善、体验优良的短剧平台显得尤为重要。本文将详细介绍短剧源码的开发搭建过程&#xff0c;包括需求分析、技…...

MySQL分区建表例子

以下为MySQL分区建表的例子 CREATE TABLE mz_mjzcfxxmx (SERIALNUM_ID varchar(96) NOT NULL COMMENT 业务角度唯一性ID,DATAGENERATE_DATE datetime NOT NULL COMMENT 业务数据产生时间,ROW_ID varchar(300) DEFAULT NULL COMMENT 数据角度唯一性ID,TASK_ID varchar(96) DEFAU…...

nginx变量

一、Nginx 变量概述 Nginx 变量是一种在 Nginx 配置中用于存储和操作数据的机制&#xff0c;它们可以在不同的配置块&#xff08;如 http、server、location 等&#xff09;中使用&#xff0c;以实现动态配置和灵活的请求处理。变量的值可以根据各种条件&#xff08;如请求头信…...

网络编程 02:IP 地址,IP 地址的作用、分类,通过 Java 实现 IP 地址的信息获取

一、概述 记录时间 [2024-12-18] 前置文章&#xff1a;网络编程 01&#xff1a;计算机网络概述&#xff0c;网络的作用&#xff0c;网络通信的要素&#xff0c;以及网络通信协议与分层模型 本文讲述网络编程相关知识——IP 地址&#xff0c;包括 IP 地址的作用、分类&#xff…...

小红书笔记详情API接口:解锁社交媒体商业价值的钥匙

在当今数字化时代&#xff0c;社交媒体平台已成为企业营销和品牌推广的重要渠道。小红书&#xff0c;作为一个以内容分享为核心的社交媒体平台&#xff0c;汇聚了大量用户和创作者&#xff0c;他们在这里分享生活心得、购物体验、美妆技巧等多元化内容。小红书笔记详情API接口&…...

达梦查询表字段详细信息脚本(字段名称、描述、类型、长度及是否为空)

达梦查询表字段详细信息脚本&#xff08;字段名称、描述、类型、长度及是否为空&#xff09; 该SQL 脚本&#xff0c;用于查询表中字段的基本信息&#xff0c;包括字段名称、描述、数据类型、数据长度、是否为空及是否为主键等属性。 SQL 脚本 -- 输入变量 DECLAREp_owner VA…...

群落生态学研究进展】Hmsc包开展单物种和多物种分析的技术细节及Hmsc包的实际应用

联合物种分布模型&#xff08;Joint Species Distribution Modelling&#xff0c;JSDM&#xff09;在生态学领域&#xff0c;特别是群落生态学中发展最为迅速&#xff0c;它在分析和解读群落生态数据的革命性和独特视角使其受到广大国内外学者的关注。在学界不同研究团队研发出…...

CSS 语法

CSS 语法 CSS(层叠样式表)是一种用于描述HTML或XML文档样式的样式表语言。它允许您将样式信息与文档内容分离,从而更有效地控制网页的布局和外观。本文将详细介绍CSS的基本语法和结构,帮助您更好地理解和应用CSS。 CSS的基本结构 CSS由一系列的规则组成,每个规则包含一…...

【区块链】区块链密码学基础

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 区块链密码学基础引言一、哈希函数1.1 基本概念1.2 数学表达 二、非对称加密2.1…...

ik分词器了解 和 通过zip安装包的方式 将ik分词器安装到elasticsearch中

目录 1. ik分词器的作用&#xff08;效果&#xff09; &#xff08;1&#xff09;标准分析器效果 &#xff08;2&#xff09;ik_smart分词 &#xff08;3&#xff09;ik_max_word分词 2. 首先根据自己的elasticsearch的版本下载对应的ik分词器版本 3. 将下载好的ik分词器…...

【数字化】华为数字化转型架构蓝图

导读&#xff1a;华为的数字化转型规划团队在2016年年底基于对愿景的系统诠释&#xff0c;整合出了数字化转型架构蓝图。该蓝图共分为5层&#xff0c;旨在通过数字化转型实现客户交互方式的转变、作战方式的转变、公司各平台业务能力的数字化、服务化以及运营模式的转变。 目录…...

K8s中 statefulset 和deployment的区别

在 Kubernetes 中&#xff0c;StatefulSet 和 Deployment 是两种管理 Pod 的控制器&#xff0c;它们的主要区别在于 状态管理 和 Pod 的标识。以下是详细对比&#xff1a; 1. 功能定位 Deployment 用途&#xff1a;用于 无状态应用 的部署&#xff0c;例如 Web 服务、API 服务…...

C#多线程系列章节五

线程创建的几种写法 thread类 threadpool 线程池 task类 Thread t = new Thread(func); t.Start();//线程开始执行threadPool.QueueUserWorkItem(test)创建var t1 = new Task(() => test(“Task 1”));t.start();Task.Run(() => test(“Task 2”));Task.Factory.StartNew…...

了解 JVM 运行原理,掌握常见的内存模型以及性能调优的基本方法

JVM运行原理概述 Java Virtual Machine (JVM) 是 Java 程序运行的核心组件&#xff0c;它的运行机制包括加载字节码、字节码解释或编译成本地机器代码执行。下面是 JVM 的运行流程和核心部分&#xff1a; JVM 的运行机制 类加载&#xff08;Class Loading&#xff09;&#xf…...

游戏AI实现-寻路算法(DFS)

​深度优先搜索算法&#xff08;英语&#xff1a;Depth-First-Search&#xff0c;缩写为DFS&#xff09;是一种用于遍历或搜索树或图的算法。 寻路地图搭建&#xff1a; 游戏AI实现-寻路地图搭建-CSDN博客 算法过程&#xff1a;遍历方向为从竖直向上沿顺时针方向 1.首先将开…...

Qlib专为AI而生的量化投资平台

1、三层 Infrastructure层 该层为量化研究提供了基础支持。Data Server模块为用户管理和检索原始数据提供了高性能的基础架构。Trainer模块提供了灵活的接口来定义模型的训练过程&#xff0c;同时也为分布式训练提供了接口。Model Manager模块可以让用户更好地管理繁多的AI模型…...

圣乔ERP系统downloadFile.action存在任意文件读取漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

YOLOv11改进,YOLOv11添加DLKA-Attention可变形大核注意力,WACV2024 ,二次创新C3k2结构

摘要 作者引入了一种称为可变形大核注意力 (D-LKA Attention) 的新方法来增强医学图像分割。这种方法使用大型卷积内核有效地捕获体积上下文,避免了过多的计算需求。D-LKA Attention 还受益于可变形卷积,以适应不同的数据模式。 理论介绍 大核卷积(Large Kernel Convolu…...

深入解析 `DataFrame.groupby` 和 `agg` 的用法及使用场景

深入解析 DataFrame.groupby 和 agg 的用法及使用场景 1. groupby 的基本用法语法&#xff1a;示例&#xff1a; 2. agg 的基本用法语法&#xff1a;示例&#xff1a; 3. first、sum、lambda 的用法3.1 first示例&#xff1a; 3.2 sum示例&#xff1a; 3.3 lambda示例&#xff…...

用.Net Core框架创建一个Web API接口服务器

我们选择一个Web Api类型的项目创建一个解决方案为解决方案取一个名称我们这里选择的是。Net 8.0框架 注意&#xff0c;需要勾选的项。 我们找到appsetting.json配置文件 appsettings.json配置文件内容如下 {"Logging": {"LogLevel": {"Default&quo…...

[论文阅读]Universal and transferable adversarial attacks on aligned language models

Universal and transferable adversarial attacks on aligned language models http://arxiv.org/abs/2307.15043 图 1&#xff1a;Aligned LLMs 不是对抗性 Aligned。我们的攻击构建了一个单一的对抗性提示&#xff0c;该提示始终绕过最先进的商业模式&#xff08;包括 ChatG…...

【自动化】Python SeleniumUtil 油猴 工具 自动安装用户脚本

【自动化】Python SeleniumUtil 油猴 工具 【自动化】Python SeleniumUtil 工具-CSDN博客【自动化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565691 油猴工具 import timefrom selenium.webdriver.support.wait import WebDriverW…...

[LeetCode-Python版]21. 合并两个有序链表(迭代+递归两种解法)

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#x…...

WPF 相比 winform 的优势

wpf 相比 winform 的一些优点&#xff0c;网上也是众说纷纭&#xff0c;总的来说包括下面几点&#xff1a; 丰富的视觉效果&#xff1a;能够创建更具吸引力和现代化的用户界面&#xff0c;支持更复杂的图形和动画效果。不需要像 winform 一样&#xff0c;稍微做一点效果&#x…...

机器学习预处理-表格数据的分析与可视化

机器学习预处理-表格数据的分析与可视化 最近在做一些模型部署的工作&#xff0c;但是发现对于数据的处理、分析、训练方面还是缺少一些系统的学习&#xff0c;因此抽空余时间分析总结一些使用python进行数据处理的实用案例&#xff0c;希望能够方便自己已经其他人的Ctrl CV。…...

Linux——Shell

if 语句 格式&#xff1a;if list; then list; [ elif list; then list; ] ... [ else list; ] fi 单分支 if 条件表达式; then 命令 fi 示例&#xff1a; #!/bin/bash N10 if [ $N -gt 5 ]; then echo yes fi # bash test.sh yes 双分支 if 条件表达式; then 命令 else 命令…...

《深入探究:C++ 在多方面对 C 语言实现的优化》

目录 一、C 在 C 上进行的优化二、C 关键字&#xff08;C 98&#xff09;三、C 的输入输出1. cin 和 cout 的使用2. cin、cout 和 scanf()、printf() 的区别 三、命名空间1. 命名空间的使用2. 嵌套命名空间3. 在多个头文件中使用相同的命名空间 四、函数缺省值1. 缺省值的使用2…...

KeepAlive与RouterView缓存

参考 vue动态组件&#xff1c;Component&#xff1e;与&#xff1c;KeepAlive&#xff1e; KeepAlive官网介绍 缓存之keep-alive的理解和应用 Vue3Vite KeepAlive页面缓存问题 vue多级菜单(路由)导致缓存(keep-alive)失效 vue3 router-view keeperalive对于同一路径但路径…...

pyparsing restOfLine

在 pyparsing 中&#xff0c;restOfLine 是一个解析器&#xff08;parser&#xff09;&#xff0c;用于匹配当前位置到行尾的所有内容&#xff0c;通常在解析文件或处理逐行数据时非常有用。 restOfLine 的特性 匹配内容&#xff1a;从当前位置一直匹配到换行符 \n 或字符串结…...

回型矩阵:JAVA

解题思路&#xff1a; 通过定义四条边界&#xff1b;top,left,right,bottom,来循环&#xff0c;当top>bottom&&left>right的时候循环终止 循环结束的条件&#xff1a; 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述…...

React自学:如何使用localStorage,以及如何实现删除笔记操作

1. 初始化notes 以下这段代码完成了这些操作&#xff1a; 调用 localStorage.getItem("notes") 从浏览器的本地存储中获取名为 “notes” 的数据。使用 JSON.parse 将获取到的字符串解析成数组。如果本地存储中没有 “notes” 数据&#xff08;返回值为 null&#…...

【CSS in Depth 2 精译_079】第 13 章:渐变、阴影与混合模式概述 + 13.1:CSS 渐变效果(上)——使用多个颜色节点

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 13 章 渐变、阴影与混合模式】 ✔️ 13.1 渐变 ✔️ 13.1.1 使用多个颜色节点&#xff08;上&#xff09; ✔️13.1.2 颜色插值方法&#xff08;中&#xff09;13.1…...

汽车供应链 “剧变”开始,“智能感知潜在龙头”诞生

智能汽车产业链“剧变”已经开启&#xff0c;智能感知软硬件能力的权重正在不断被放大。 比如满足高阶泊车的第二代AK2超声波传感器、满足人机共驾场景需求的电子外后视镜&#xff08;CMS&#xff09;、iTOF 3D成像视觉感知&#xff08;用于舱内监控&#xff09;等新产品&…...

3大Excel免费功能

推荐几个免费excel图表绘制工具 Power Map Power Map是Excel的内置功能 Power Map可在Windows用户的Excel 2013或者Excel 2016或者Office 365中使用,如下图, 看案例 动态地图1 动态地图2...

linux centos 7 安装 mongodb7

MongoDB 是一个基于文档的 NoSQL 数据库。 MongoDB 是一个文档型数据库&#xff0c;数据以类似 JSON 的文档形式存储。 MongoDB 的设计理念是为了应对大数据量、高性能和灵活性需求。 MongoDB使用集合&#xff08;Collections&#xff09;来组织文档&#xff08;Documents&a…...

docker 安装 mongo 命令

## 拉取 MongoDB 镜像docker pull mongo:latest## 挂载文件目录&#xff1a;mkdir -p /usr/local/mongo/configmkdir -p /usr/local/mongo/datamkdir -p /usr/local/mongo/logstouch /usr/local/mongo/config/mongod.confchmod 777 /usr/local/mongo## 配置文件##vim …...

问题记录:CH592 PB6/PB10中断输入,无法从掉电模式唤醒

问题描述&#xff1a; PB6上拉输入&#xff0c;连接按键 PB10上拉输入&#xff0c;连接外部充电芯片状态管脚。不充电时开漏输出&#xff0c;充电时低电平 配置PB6和PB10为上拉输入&#xff0c;下降沿触发中断&#xff0c;然后进入掉电模式 理论上&#xff1a; PB6按键触发…...

搭建分布式Spark集群

title: 搭建分布式Spark集群 date: 2024-11-29 12:00:00 categories: - 服务器 tags: - Spark - 大数据搭建分布式Spark集群 本次实验环境&#xff1a;Centos 7-2009、Hadoop-3.1.4、JDK 8、Zookeeper-3.6.3、scala-2.11.5、Spark-3.2.1 功能规划 MasterSlave1Slave2主节点…...