[Linux Audio Driver] 音频POP音问题归纳总结

Qcom Audio PCM数据流 Qxdm log抓取,Qcat解析相关 0x152E LOG_ADSP_AUD_DEC_IN_C //aDSP audio decoder input logThis log code can log both encoded bit stream data and PCM data as input to the audio decoder. 0x152F LOG_ADSP_AUD_POPP_IN_C //aDSP audio per-object postprocessing input log 0x1530 LOG_ADSP_AUD_MT. 阅读详情

1. 板级电容/电感发声

情况就是你设备开机之后,啥也没干,然后听到呲啦刺啦的声音,这种情况我遇到过一次,这个是
不合理的结构设计或者走线导致的,硬件实力挖坑,需要改版解决。
在这里插入图片描述

2.播放声音长时间有杂音

这个锅我们送给硬件,这个是芯片之间有干扰;需要硬件检查个别芯片的地是不是干净的。

在这里插入图片描述

3. 插拔USB出现POP音

还是需要硬件背锅,相关电路加磁珠有可能优化此问题.

在这里插入图片描述

4. 播放声音的瞬间有POP音

这个可能是硬件也可能是软件的锅;使用高通QXDM工具分析问题,若0x1586之前都没有问题,那么此问题是硬件导致的,否则是软件导致的;

软件可以从以下两个方面尝试解决:

4.1 PA上下电相关代码使用延迟队列。
4.2 也有可能有人写的代码不规范,自己封装了mixer,但是没有加入到DAPM里面。

5. 作者注

/******
@article{Linux Audio Driver,
Author = { 1byte ≠ 8bit},
Year = { 2020},
}
******/
335x系列-解决爆破音导致的调用延迟问题 实验板子:飞凌FET335xD uboot版本:2011.09 linux内核版本:linux3.2 cpu:Ti的3354 操作系统:linux3.2 文件系统:ubi 问题: 当按照应用笔记中的patch修改了内核,爆破音问题的确解决了,但是发现声音的输出有400ms的延时。 想象: 每次上电第一次放音会有延时,5s内连续放音没有延时,停5s以上就会出现延时 应用笔记中的patch diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codec 阅读详情

相关推荐

Android音频子系统(driver+android)

Linux 驱动 ALSA模型: Linux ALSA声卡驱动之一:ALSA架构简介 Linux ALSA声卡驱动之二:声卡的创建 Linux ALSA声卡驱动之三:PCM设备的创建 Linux ALSA声卡驱动之四:Control设备的创建 Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC) Linux ALSA声卡驱动之六:ASoC架构中的Machine Linux ALSA声卡驱动之七:ASoC架构中的Codec Linux ALSA声卡驱动之八:ASoC架构中的Platform AL

weixin_44991625的博客 1733

[Linux Audio Driver] PDM CLOCK导致的耳机右声道POP音问题

0. 背景 此问题现象是,当音乐播放器里面有两首歌时,正在播放一首,然后双击耳机的中间按键会出现POP音;这里会发现,直接在界面上切歌,是不会有这样的问题的; (注:如此时音乐的名字mute1,我使用两个静音文件来做测试以排除音源本身的问题) 这是由于,直接用界面切歌,会默认触发提示音,进入设置里面,把所有的提示音都关闭,此问题即可通过在音乐播放器界面切歌复现;以下开始debug. 1. 软件修...

编程菜汝狗 1326

[RK3399][Android7.1] 调试笔记 --- 解决开关按键时产生的Pop声

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 背景: 按键音在打开和关闭的时候,会有pop声。 原因: audio codec后面有个功放,功放一直打开着,当codec打开和关闭的时候,会有噪声带进到功放中。 解决方法: 注:GPIO4_D4是用来控制功放的开关。 diff --git a/arch/arm64/boot/dts/rockch...

Kris Fei's blog 4829

关于手机常见音频POP音产生的原因以及解决思路(二)——音源的开启与关闭

前面讲了耳机插拔过程产生POP音,今天再给大家讲一讲由于音频PA产生的POP音。关于音频PA产生的POP音应该是很多项目都遇到过的问题,这类问题,如果想要根本兴彻底解决几乎是不太可能的。因芯片本身特性,几乎世面上的大多数无论是数字PA芯片还是模拟PA芯片,在使用专业的PA设备测量时,几乎都会在音源播放结束后的短暂时间里会存在一个尖峰电压。但由于个别尖峰电压较小,产生的POP音微忽极微,用户几乎完全听不到。所以这个尖峰电压大概是多少属于可接受范围,人耳几乎察觉不到呢?

weixin_43772512的博客 5783

音频驱动篇之pop音攻略

接触音频驱动工作也有2年的时间了,这这段时间里深刻感受了手机行业的更新换代是MB的迅速。2年的时间里,从TI到QUALCOMM,从android2.1到4.2,从单核到四核。经我参与的项目就有20款,日子是相当的难过。 今天回头来说一些我在研发过程中遇到的一些音频难点问题与大家分享,希望对从事音频驱动行业的兄弟们有些许帮助,同时也希望大家有好的想法可以和我沟通,与大家分享。 一、pop音产生的...

飞天鱼 3374

DSP(数字信号处理器)技术概要

数字信号处理器(digital signal processor,DSP)是一种用于数字信号处理的可编程微处理器,它的诞生与快速发展,使各种数字信号处理算送得以实时实现,为数字信号处理的研究和应用打开了新局面,提供了低成本的实际工作环境和应用平台,推动了新的理论和应用领域的发展。目前,DSP技术在通信、航空、航天。雷达、工业控制、医疗、网络及家用电器等各个领域都得到了广泛应用。 1.1 DSP系统和芯片的结构特点1.1.1 DSP系统的基本结构通过传感数将非电物理量转换为模拟电信号,预处理一般包括放大器和滤

m0_46582485的博客 2万+

Android 系统无声问题分析

记录平常解决的无声问题,以便总结解题思路

4276

基于Canfestival的对象字典工具objdictedit.py的运行环境配置

本文以菜狗的视角,一步一步地对对象字典的环境进行配置,旨在能给读者一个比较详细的参考,不恰之处,还请指正。

在线求职中... 3709

[Linux Audio Driver] 高通音频相关汇总(持续更新)

0. 背景 之前写了一些音频的博客,但是比较散乱,就想着汇总下写的博客,也是对自己知识结构的梳理,这个会持续更新。 1. 代码分析&总结 I2S相关介绍 ACDB文件加载流程(一) ACDB文件加载流程(二) ACDB文件加载流程(完结篇) 高通平台内部MIC_BIAS简介 从设备地址理解 Android7 外部PA Speaker代码结构 MSM8953音频部分设备树调用关系 开启音频kernel内核debug功能 声卡与XML匹配流程 SDM660平台内部CODEC tinyalsa命令总结 S

编程菜汝狗 4965

从零到一:基于STM32F103C8T6与HAL库的磁悬浮电赛装置实战解析

本文详细解析了基于STM32F103C8T6微控制器与HAL库,从零构建磁悬浮装置的完整实战方案。文章深入剖析了硬件设计中的线圈布局与“反向串联”巧思,以节省PWM资源;并阐述了采用三闭环PID控制算法的软件实现,结合Keil开发环境与HAL库进行工程搭建与调试。该方案为电子设计竞赛(电赛)提供了高可行性的参考,是嵌入式软硬件综合实践的优秀范例。

weixin_29169505的博客 274

(王道408考研操作系统)第三章内存管理-第一节1:内存基础知识、程序编译运行原理

注意:本节内容和《计算机组成原理》“存储器”那一部分内容相关性很强,组成原理是从硬件角度,操作系统是从软件角度。因此如果没有学习过这部分的同学,强烈建议先看这一部分 王道计算机组成原理笔记 本文主要会涉及以下必要的内存知识 文章目录一:内存及其作用 一:内存及其作用 内存:内存又称之为主存。是一种硬件设备,作为CPU和硬盘的缓冲区,用于解决其速度不匹配的问题,提高整机性能。程序执行前需要放入内存才能运行 ...

快乐江湖的博客 2793

Linux ALSA音频系统:platform,machine,codec

1.前言  本篇结合自己的项目,参考优快云博主:zyuanyun 来讲解。2.项目平台介绍Kernel - 4.9Soc - Amlogic (型号保密)CODEC - npcp215xMachineUserspace - alsa-lib-1.1.53.linux ALSA音频系统官网:https://www.alsa-project.org/main/index.php/Main_Page ...

ccion的博客 9721

SAP 错误消息调试之七种武器:让所有的错误消息都能被定位

目录 长生剑 - SAPGUI Where Used List 碧玉刀 - ABAP调试器观察点 霸王枪 - ABAP调试器动态断点 多情环 - ABAP代码静态扫描 孔雀翎 - SAT 离别钩 - ST05 拳头 - 迷之方法??? Jerry在2018年开始用中文在微信公众号平台上写作之前,在SAP官方社区上总共写了639篇英文博客。 其中有一篇写于2013年介绍ABAP调试技巧的博客:

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2811

Linux学习第46天:Linux音频驱动试验:总有那么一首歌,会让你泪流满面。

本节笔记主要学习一下如何使能 WM8960 驱动,并且通过 WM8960 芯片来完成音乐播放与录音。

955

注意力机制模块:CA(坐标注意力)二次创新:融合深度可分离卷积,打造 CADS 模块

本文提出CADS模块,将坐标注意力(CA)与深度可分离卷积(DSC)深度融合,优化移动端AI部署效率。通过重构CA的计算范式,用深度卷积替代传统1×1卷积,在保持精度的同时显著降低计算开销。文章深入分析了CA的计算瓶颈和DSC的实际效率问题,详细阐述了CADS的设计原理与PyTorch实现,并提供了多组性能对比数据。该模块可直接应用于YOLO、UNet等主流模型,为移动端AI部署提供高效解决方案。

ZXSXJ的博客 96

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

2079

杂音 & pop 音的解决方法

杂音 & pop 音的解决方法   1. 喇叭有严重的“吱吱”破音,绝大多数的原因有可能在于V(out)电压不稳定,所以最好测一下无负载时的输出电压。同时也可以测量 VCC –即boost 的输出/输入电压。正常的VCC   可以通过客户的 反馈电阻和 VCC负载电阻求得。   2、客户有杂音:估计是信号的干扰,一般是电源的干扰因素占最大的比重,建议测量静态电流 IQ  。   ...

u013165704的博客 6025

使用Matlab实现海洋监视雷达检测仿真

海洋监视雷达是一项重要的海洋探测技术,可以用于海上船只、飞机、潜艇等目标的探测和监视,具有广泛的应用价值。本篇文章将介绍如何使用Matlab进行海洋监视雷达的检测仿真,并提供相应的源代码。本篇文章提供了利用Matlab进行海洋监视雷达检测仿真的基本思路和代码实现。读者可以根据自己的需求进行修改和优化,以适应不同的应用场景。使用Matlab实现海洋监视雷达检测仿真。

2301_78484069的博客 448

音频常见问题总结

音频文件在播放时出现断断续续或类似“爆破”(Pop-Click)杂音的现象,称之为 Xrun(可以是 underrun,也可以是 overrun)。 【原因】 通常来说,出现 Xrun 问题时原因可能是以下几个之一: (1) Linux CFS 调度器导致。因为 CFS 调度器的“公平调度”是较长一段时间的平均表现,在很短的一个窗口时间段内,CFS 也可能会将 CPU 时间片完全分配给一个 nice 值更高的线程而不顾及另一个 nice 值更低的线程。如果这个低 nice 值的线程恰好...

飞天鱼 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Audio音频兴趣拓展】Pop音的几种原因及解决方案

1、硬件贴片错误可能会导致pop音,比如两个输入电容的容值相差过大,一个33nf,一个1uf,这时在播放音乐的开始阶段可能会发生POP音; 2、时序控制不合理也会导致POP音,正确的时序应该为:开启时,先开启BB音源,delay 20~30ms,然后再开启功放,关闭时,采用先关闭功放,delay20~30ms,然后再关闭音源。 3、音源本身可能会产生类似POP音的异常音,可以尝试修改或更换...

crow_ch的博客 4554

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android设备启动时出现pop音

Android设备启动时出现pop音欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导...

优快云mianfeixiazai001的博客 1786

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PulseAudio 设计和实现浅析

PulseAudio 是一个 POSIX 操作系统的音频服务器系统,它是我们的音频应用程序访问系统音频设备的代理。它是所有相关的现代 Linux 发行版的组成部分,并被多个供应商用在了各种各样的移动设备中。它在应用程序和硬件设备间传递音频数据时,可以对音频数据执行一些高级操作。比如,把音频数据传给不同的机器,修改样本格式或通道数,或者混音多路音频到一路输入/输出,这些用 PulseAudio 实现都很简单。PulseAudio 主页。很多学习了编程语言,操作系统,计算机网络和标准库及操作系统 API 的同学

Lce的专栏 2360

音频领域中POP音相关问题

一、PA硬件导致的POP音 1、pop noise是由于音频路径上隔直电容两端上电时候的压差而导致快速充电产生的,一般是在Audio PA的输入RC LPF上作调整,通过减小串联的C容值来改善,但是电容减小会引起低频成分的衰减,引起音质劣化,听感发硬。 2、采用带APC(防爆音)与延迟enable技术的audio PA,使得隔直电容先充电再开通音频输入信号。通常延迟enable大多数PA的IC设计...

peiweixjtu1的博客 8254

推荐开源项目:Chrome设备的音频支持工具

在探索和优化科技体验的过程中,我们经常遇到一些挑战,其中之一就是在Chrome设备上实现流畅的音频播放。为此,我们欣喜地向您推荐一个非常实用的开源项目——`chromebook-linux-audio`。这个小巧而强大的Python脚本旨在为您的Chrome设备开启Linux环境下的音频功能。 ## 项目介绍 `chromebook-linux-audio` 是一个轻量级的解决方案,它的主要目

gitblog_00005的博客 589

全志V3S学习笔记(三)CODEC的使用(声音播放功能)

全志V3S学习笔记(三)CODEC的使用(声音播放功能) 文章目录全志V3S学习笔记(三)CODEC的使用(声音播放功能)下载alsa-lib和alsa-utils1.编译alsa-lib2.编译alsa-utils3.把文件拷贝到开发板在开发板上ls -l /dev/snd看看系统是否已经有了设备节点,如果没有,需要手动创建。音频播放测试驱动测试代码总结 下载alsa-lib和alsa-utils https://www.alsa-project.org/main/index.php/Download

Topshenck的博客 2504
上一篇: [Linux Audio Driver] Qualcomm平台音频GMS认证器件要求
下一篇: [Linux Audio Driver] ACDB文件加载流程(二)
1byte ≠ 8bit
博客等级 码龄8年 7242粉丝 170原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值