Android设备启动时出现pop音

2023-10-27

Android设备启动时出现pop音

针对Android设备上电启动过程中,出现一声pop音,或者在正常进入Android系统后,第一次点击Android应用出现的pop音。这里讨论的pop音解决方案是建立在设备硬件设计没有问题的基础之上的。

环境介绍

设立使用的声卡是WM8988,对应的Android系统版本是Android 9.0(P)。

原因定位

当出现异常的声音(pop音)需要先排除听到的pop音是什么原因导致的:系统混音出现的,还是声卡和功放的控制顺序导致的。

Android混音

TEE_SINK

需要借助Android系统的TEE_SINK功能:打开TEE_SINK功能保存Android输出音频到文件,从导出的文件看是否有异常音频(具体流程可以参考:Android音频调试)。

Android HAL层文件

也可以在Android HAL层的output stream中将声卡播放的音频导出到本地命名的二进制out.pcm文件查看是否存在异常音频(vendor/nxp-opensource/imx/alsa/tinyalsa_hal.c):

  1. adev_open_output_stream函数中:打开保存到的文件
  2. pcm_write_wrapper函数中:播放音频写入文件
  3. adev_close_output_stream函数中:结束输出后关闭文件

异常原因

从TEE_SINK和out.pcm看,第一次输出的点击音都是正常的,这说明并不是系统混音进入的杂音导致的,那么久极有可能是因为功放和声卡的开机顺序导致的:先开启了功放,然后再开启了声卡(功放开启后,开启声卡前后导致功放的电信号出现了跳变:pop音)

解决方案

确保输出通路开启顺序:先使能声卡,然后再使能功放。需要注意的是,如果声卡先使能,然后在第一次点击后,播放了点击声,但是此时如果功放还未使能的话就会出现第一次点击没有声音的情况,这就需要把握好使能顺序。

解决方案应用

  1. Android HAL层
    vendor/nxp-opensource/imx/alsa/config_wm8988.h:定义struct route_setting speaker_output_wm8988[]数组使能声卡放音routing通路
  2. ALSA声卡驱动
    (1)默认关闭功放
    (2)声卡驱动wm8988_pcm_hw_params中开启功放
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android设备启动时出现pop音 的相关文章

  • ContentResolver的notifyChange方法是否也通知详细的Uri?

    在应用数据期间我使用notifyChange与Uri 假设我通知content com package my items 我还有详细的Activity显示数据来自content com package my items 1 是否通知 一般
  • 将项目升级到Android Studio 1.0(Gradle问题)

    首先 我对 android 开发 android studio gradle 非常陌生 所以如果我问了一个愚蠢的问题 请原谅我 我的团队一直在使用 android studio 的 beta 版本开发一个项目 我刚刚安装了新版本 1 0 并
  • 如何从该 JAVA 文件中提取 Delphi 类以与 Android 一起使用?

    我的Delphi XE7项目需要与FTDI FT311 Android 配件芯片 http www ftdichip com Products ICs FT311D html 他们帮助提供了一个 Android 演示 其中包括他们的 JAV
  • 使用 dpi 与 dp 缩放图像之间的差异

    我拥有所有由九个补丁位图组成的 dpi 可绘制目录 xxhdpi 和 xxxhdpi 是否必要 可绘制目录中的可绘制资源文件可检索所有缩放的位图 并且我使用可绘制资源文件 现在 我的问题是我还根据大小 小 正常等 创建了 缩放 布局目录 其
  • 让协程等待之前的调用

    我还没有完全掌握 Kotlin 协程 基本上我希望协程在执行之前等待任何先前的调用完成 下面的代码似乎可以工作 但它正在做我认为它正在做的事情吗 private var saveJob Job null fun save saveJob s
  • 从历史堆栈中删除活动

    我的应用程序在用户第一次运行应用程序时显示注册活动 如下所示 活动启动画面 欢迎来到游戏 注册帐户 ActivitySplashScreenSignUp 很好 填写此信息 ActivityGameMain 游戏主屏幕 因此 当用户单击每个屏
  • android中根据屏幕尺寸计算图像尺寸

    我正在尝试根据屏幕尺寸计算图像高度和宽度 我从后端获取 5 x 7 尺寸的图像 为了将像素乘以 72 进行转换 我有 360 X 504 尺寸的图像 对于 360 X 504 我的动态透明矩形区域将显示为 1 223 x 1 179 即 8
  • Android中如何检测WIFI连接何时建立?

    我需要检测何时通过 WIFI 建立网络连接 发送什么广播来确定已建立有效的网络连接 我需要验证是否存在有效的 HTTP 网络连接 我应该监听什么以及需要进行哪些额外测试才能知道是否存在有效连接 您可以注册一个BroadcastReceive
  • Android Fragment onCreateView 与手势

    我正在尝试在片段中使用手势 我在 FragmentActivity 中有以下内容来处理我的详细信息片段 我试图发生的情况是 当在视图上检测到滑动时 将该视图内的数据替换为上一个或下一个条目 如果有更好的方法来处理这个问题 我完全同意 然而
  • 使用 Android Studio 进行调试永远停留在“等待调试器”状态

    UPDATE The supposed重复是一个关于陷入 等待调试器 执行时Run 而这个问题就陷入了 等待调试器 执行时Debug 产生问题的步骤不同 解决方案也不同 每当我尝试使用Android Studio的调试功能时 运行状态总是停
  • 来自相机的 MediaCodec 视频流方向和颜色错误

    我正在尝试流式传输视频捕获直接从相机适用于 Android 设备 到目前为止 我已经能够从 Android 相机捕获每一帧预览帧 byte data Camera camera 函数 对数据进行编码 然后成功解码数据并显示到表面 我用的是安
  • 如何制作在手机和平​​板电脑上使用的响应式Android应用程序?

    我创建了一个 Android 应用程序 当我运行我的应用程序时Mobile Phone它工作得很好 但是当我跑进去时Tablet应用程序的布局已更改 那么 如何制作响应式Android应用程序用于Mobile并且也在Tablet 在Andr
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 由于“进程崩溃”,仪器运行失败。

    我想运行以下测试 package com xxx yyy import android content Context import androidx test InstrumentationRegistry import androidx
  • Android Gradle 同步失败:无法解析配置“:classpath”的所有工件

    错误如下 Caused by org gradle api internal artifacts ivyservice DefaultLenientConfiguration ArtifactResolveException Could n
  • 如何关闭 EditText 中的建议?

    如何在 Android 中关闭 EditText 中的建议 android inputType textNoSuggestions 根据this http comments gmane org gmane comp handhelds an
  • Android AdMob:addView 在返回活动之前不会显示广告

    我正在尝试在游戏顶部添加横幅广告 我的活动使用带有自定义 SurfaceView 的relativelayout 我希望广告与 SurfaceView 重叠 广告会加载并可点击 但不会绘制到屏幕上 当我离开活动并返回时 会绘制广告 例如 通
  • 使用Intent拨打电话需要权限吗?

    在我的一个应用程序中 我使用以下代码来拨打电话 Intent intent new Intent Intent ACTION CALL Uri parse startActivity intent 文档说我确实需要以下清单许可才能这样做
  • 如何正确编写AttributeSet的XML?

    我想创建一个面板适用于 Android 平台的其他小部件 http code google com p android misc widgets 在运行时 XmlPullParser parser getResources getXml R
  • 为什么带处理程序的连续自动对焦相机不允许切换相机闪光灯?

    到目前为止我所做的 我已经实现了用于读取二维码的自定义相机 需要继续聚焦相机以获得更好的二维码读取 我的问题当我使用处理程序每 秒聚焦一次时 相机闪光灯开 关按钮不起作用 或者打开和关闭相机闪光灯需要太多时间 当我删除每秒自动对焦相机的代码

随机推荐

  • 9个点的所有解锁图_Android九宫格手势锁设定和解锁

    最近在做APP的自动化测试 采用的是Appium方案 在测试过程中遇到了九宫格滑动解锁的问题 通过查阅相关资料 我做了一个通用的方法来处理九宫格在一个view中显示的情况 这种情况我们只能通过定位每一个点的相对坐标来滑动 这里先获取整个九宫
  • node环境下运行js代码缺少window环境原因与解决方案

    node环境下运行js代码缺少window环境原因与解决方案 目录 报错信息与截图 报错原因 解决方案 报错信息与截图 ReferenceError window is not defined 外链 报错原因 使用node环境直接运行js文
  • rpm软件包管理,YUM以及源码编译安装

    一 初始rpm软件包 1 软件包是由以下几个部分组成的 1 二进制程序 2 配置文件 组成方式有三种 单个文件 将主配置文件分割为多个小文件 并放置于某目录中 单个文件 在内部分割为多个段的 3 库文件 静态库 动态库 4 帮助文件 手册页
  • android的padding属性,android_padding属性及介绍.doc

    Android 的Margin和Padding属性以及支持的长度单位 Posted on 2011 04 26 18 41 蝈蝈俊 阅读 2960 评论 0 编辑 收藏 Android的Margin和Padding跟Html的是一样的 如下
  • JAVA 数据库读取blob(图片)合成多张图 基于Struts2和Spring

    今天工作要求把存在数据库的图片 blob 读取出来 之前没有做过所以找了不少资源 在这里记录一下 因为用的是jdbcTemplate 在这里一起贴出来 以防忘了 因为数据库查出来的图片是多张图 在这里返回List 到前台再转成byte 有些
  • spring Boot + Jpa(Hibernate) 架构基本配置

    1 基于springboot 1 4 0 RELEASE版本测试 2 springBoot Hibernate Druid Mysql servlet jsp 不废话 直接上代码 一 maven的pom文件
  • 手机网站如何封装成微信小程序

    封装手机网站为完整的微信小程序需要进行一系列的开发工作 涉及到多个文件和代码的编写 以下是一个基本的小程序代码结构示例 可以作为你封装手机网站的起点 app js 小程序的入口文件 用于全局的初始化和配置 App 全局数据 globalDa
  • ADMM算法求解一个简单的例子

    求解下面的带有等式约束和简单的边框约束 box constraints 的优化问题 minx y x 1 2 y 2 2s t 0 x 3 1 y 4 2x 3y 5 begin equation begin aligned min x y
  • 聊一聊.NET的网页抓取和编码转换

    在本文中 你会了解到两种用于 HTML 解析的类库 另外 我们将讨论关于网页抓取 编码转换和压缩处理的知识 以及如何在 NET 中实现它们 最后进行优化和改进 文章目录 1 背景 2 网页抓取 3 编码转换 4 网页压缩处理 5 代码优化
  • ElasticSearch+Kibana on K8s 讲解与实战操作(版本7.17.3)

    文章目录 一 概述 二 ElasticSearch 节点类型与作用 三 K8s 集群部署 四 ElasticSearch on K8s 开始部署 1 下载安装包 2 构建镜像 3 修改yaml编排 4 开始部署 5 测试 6 elastic
  • 5. 筛选和过滤

    文章目录 筛选和过滤 条件筛选 提取 抽样 最值 Index np argmax argmin np argsort 筛选和过滤 这小节与索引和切片有点类似 但倾向于从 整体 中统一筛选出 符合条件 的内容 而索引和切片更多的是依照 某种方
  • C++编译警告:warning C4305: 'initializing' : truncation from 'const double' to 'float'

    float a 4 14E 3 float a 3 1 类似的语句在编译的时候 会产生如下警告 warning C4305 initializing truncation from const double to float 虽然说不会导致
  • Apriori算法详解之【一、相关概念和核心步骤】

    感谢红兰整理的PPT 简单易懂 现在将其中精彩之处整理 与大家分享 一 Apriori算法简介 Apriori算法是一种挖掘关联规则的频繁项集算法 其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集 Apriori 先验的
  • 36奇迹发布网_8点1氪:王思聪已被取消限制消费令;拼多多大跌近23%,下一季度会继续“百亿补贴”;苹果发布千元iPhone11智能手机壳...

    11月20晚间 查询中国执行信息公开网发现 王思聪已不在限制消费人员名单之中 文 梦想家菜菜 邹黄晶 整理 Kr Lab 点击上方 36氪随声听 一键收听大公司热门新闻 听完音频记得添加进入 我的小程序 中哟 蜗牛移动 据IPO早知道 蜗牛
  • C++:auto&decltype

    auto用法 总述 C 11 auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型 类似的关键字还有decltype 举个例子 auto的作用就是为了简化变量初始化 如果这个变量有一个很长很长的初始化类型 就可以用au
  • CAN学习笔记3:STM32 CAN控制器介绍

    STM32 CAN控制器 1 概述 STM32 CAN控制器 bxCAN 支持CAN 2 0A 和 CAN 2 0B Active版本协议 CAN 2 0A 只能处理标准数据帧且扩展帧的内容会识别错误 而CAN 2 0B Active 可以
  • BTC-数据结构

    哈希指针 hash pointers 普通的指针存储的是某个数据在内存中的首地址 哈希指针不仅要保存地址 还要保存数据的哈希值 通过哈希指针不仅能找到数据的位置 还能检测出数据有没有被篡改 因为保存了哈希值 区块链 比特币的基本数据结构即区
  • 泰勒图(Taylor diagram)

    感谢大家的收藏 我会继续完善这篇博客的 文章目录 定义 例子 拓展 英文原版定义 python绘图方法 定义 泰勒图 泰勒图1常用于评价模型的精度 常用的精度指标有相关系数 标准差以及均方根误差 RMSE 一般而言 泰勒图中的散点代表模型
  • PySpark环境配置

    首先 要知道PySpark是Spark为Python提供的API库 因此使用 pip install pyspark 下载pyspark不等于下载了spark 因此 配置pyspark环境 首先需要下载spark 1 linux下载spar
  • Android设备启动时出现pop音

    Android设备启动时出现pop音 Android设备启动时出现pop音 环境介绍 原因定位 Android混音 TEE SINK Android HAL层文件 异常原因 解决方案 解决方案应用 Android设备启动时出现pop音 针对