android audio不同音频流,(六)settings内音频流音量调整

news2024/9/21 4:22:23

(1)settings内,可设置音频流音量,如下图:

(2)settings调整音量条进度,会触发SeekBarVolumizer对象:

SeekBarVolumizer文件路径:
frameworks/base/core/java/android/preference/SeekBarVolumizer.java

SeekBarVolumizer对象,handle会接到MSG_SET_STREAM_VOLUME事件:
public boolean handleMessage(Message msg) {

switch (msg.what) {
  case MSG_SET_STREAM_VOLUME:
    if (mMuted && mLastProgress > 0) {
      mAudioManager.adjustStreamVolume(mStreamType, AudioManager.ADJUST_UNMUTE, 0);
    } else if (!mMuted && mLastProgress == 0) {
      mAudioManager.adjustStreamVolume(mStreamType, AudioManager.ADJUST_MUTE, 0);
    }
    mAudioManager.setStreamVolume(mStreamType, mLastProgress,AudioManager.FLAG_SHOW_UI_WARNINGS);
    break;
    ...
  }

return true;
}

(3)调用AudioManager对象,执行对应流音量大小调整:

AudioManager文件路径:
frameworks/base/media/java/android/media/AudioManager.java

AudioManager对象执行,音量调整函数:
public void setStreamVolume(int streamType, int index, int flags) {
  final IAudioService service = getService();
  try {
      service.setStreamVolume(streamType, index, flags, getContext().getOpPackageName());
  } catch (RemoteException e) {
      throw e.rethrowFromSystemServer();
 }
}


在设置APK内,触发不同音量进度条,会拉起setStreamVolume()函数,完成对应音频流音量大小调整。

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

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

相关文章

设计模式13-单件模式

设计模式13-单件模式 写在前面对象性能模式典型模式1. 单例模式(Singleton Pattern)2. 享元模式(Flyweight Pattern)3. 原型模式(Prototype Pattern)4. 对象池模式(Object Pool Pattern&#xf…

WebRTC QoS方法十三.2(Jitter延时的计算)

一、背景介绍 一些报文在网络传输中,会存在丢包重传和延时的情况。渲染时需要进行适当缓存,等待丢失被重传的报文或者正在路上传输的报文。 jitter延时计算是确认需要缓存的时间 另外,在检测到帧有重传情况时,也可适当在渲染时…

无人机图像目标检测技术详解

当前研究领域的热点之一。无人机搭载的高清摄像头能够实时捕获大量图像数据,对这些数据进行有效的目标检测对于军事侦察、环境监测、灾害救援等领域具有重要意义。本文将对无人机图像目标检测技术进行详解,包括图像处理技术、目标检测算法、关键技术应用…

LoFTR关键点特征匹配算法环境构建与图像匹配测试Demo

0,LoFTR CVPR 2021论文《LoFTR: Detector-Free Local Feature Matching with Transformers》开源代码 1,项目主页 LoFTR: Detector-Free Local Feature Matching with Transformers 2,GItHub主页 GitHub - zju3dv/LoFTR: Code for "…

Gen AI核心技术发展趋势分析

Gen AI核心技术解析及发展趋势 判别式模型,适用于处理回归与分类任务,其核心在于精准区分各类数据。与生成模型的生成新数据不同,判别模型专注于揭示输入特征与输出标签之间的紧密联系,从而实现准确分类或预测。在众多应用领域&am…

VS Code打开新文件会覆盖之前的窗口,解决办法

当我在VS Code中打开文件夹时,文件夹中只有一个文件能展示在窗口中,如果点击打开另外一个文件,之前打开的文件又会被覆盖。这样是无法进行文件之间的关联查找的。 要保证窗口可以打开多个文件,有不同的tab显示,设置如下…

好用的电脑屏幕监控软件推荐,什么软件能够监控电脑?

在当今信息化时代,电脑屏幕监控软件成为了企业管理、家长监管以及教育培训等领域的必备工具。通过实时监控电脑屏幕,这类软件可以有效提高工作效率,防止信息泄露,保障网络安全。本文将详细盘点几款主流的电脑屏幕监控软件&#xf…

PHP基础语法(四)

一、字符串类型 1、字符串定义语法 1)单引号字符串:在单引号内部,所有的字符都会按照字面意义解释,不会进行变量替换或转义处理,除了 \ 表示单引号本身。 $str1 Hello, World!;2)双引号字符串&#xff…

【机器学习算法基础】(基础机器学习课程)-08-决策树和随机森林-笔记

一、决策树之信息论基础 决策树是一种用来做决策的工具,就像我们生活中的选择树。例如,你在选择今天穿什么衣服时,会根据天气情况、出行活动等进行判断。决策树的构建过程涉及一些信息论的概念,用来衡量和选择最好的“分叉点”来进…

Unity打包设置

1.Resolution and Presentation (分辨率和显示) Fullscreen Window (全屏窗口): 应用程序将以全屏窗口模式运行,但不会独占屏幕。适用于想要全屏显示但仍需访问其他窗口的情况。 Resizable Window (可调整大小的窗口): 允许用户调整应用程序窗口的大小。适用于窗口…

Action通信 实践案例

Action通信 Server端实现 创建服务端功能包(注意目录层级): ros2 pkg create my_exer05_action_server --build-type ament_cmake --node-name nav_server --dependencies rclcpp rclcpp_action my_exer_interfaces nav_msgs /*需求&#x…

【vim】ubuntu20-server 安装配置 vim 最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【vim】ubuntu20-server 安装配置 vim 最新最详细 开发环境一、vim github二、安装必…

基于SpringBoot实现验证码功能

目录 一 实现思路 二 代码实现 三 代码汇总 现在的登录都需要输入验证码用来检测是否是真人登录,所以验证码功能在现在是非常普遍的,那么接下来我们就基于springboot来实现验证码功能。 一 实现思路 今天我们介绍的是两种主流的验证码,一…

IP地址专用SSL/https证书——10分钟签发

一般常用的SSL证书多为域名型SSL证书,即需要提供准确的域名。如果不能提供域名,只能提供IP地址,则需要一种特殊的SSL证书——IP地址证书。下面是IP地址证书的申请教程 IP地址专用SSL证书获取链接https://www.joyssl.com/certificate/select/…

SQL中的LEFT JOIN、RIGHT JOIN和INNER JOIN

在SQL中,JOIN操作是连接两个或多个数据库表,并根据两个表之间的共同列(通常是主键和外键)返回数据的重要方法。其中,LEFT JOIN(左连接)、RIGHT JOIN(右连接)和INNER JOIN…

Open3D 将点云投影到球面

目录 一、概述 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2投影后点云 前期试读,后续会将博客加入下列链接的专栏,欢迎订阅 Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、概述…

【表单组件】地址组件新增精简模式

07/17 主要更新模块概览 快速筛选 精简模式 触发条件 自定义域名 01 表单管理 1.1 【表单组件】-数据关联组件新增快速筛选功能 说明: 数据关联组件新增快速筛选功能,用户在数据关联组件选择数据时,可以通过快速筛选功能&#xff0…

黑马头条Day07-app端文章搜索

一、今日内容介绍 1. App端搜索效果图 2. 今日内容 (1)文章搜索 Elasticsearch环境搭建索引库创建文章搜索多条件复合查询索引数据同步 (2)搜索历史记录 MongoDB环境搭建异步保存搜索历史查看搜索历史列表删除搜索历史 &…

Linux源码安装的Redis如何配置systemd管理并设置开机启动

文章目录 实验前提实验 实验前提 已完成源码安装并能正常启动redis /usr/local/bin/redis-server能正常启动redis 实验 vim /etc/systemd/system/redis.service内容如下: [unit] Descriptionredis-server Afternetwork.target[Service] Typeforking ExecStart/…

从零开始创建vue3项目——包含项目初始化、element-plus、eslint、axios、router、pinia、echarts

项目启动 初始化vue3项目 这里建议先下载pnpm,下载速度更快,如果还没下载可以使用 npm install -g pnpm 如果遇到报错问题,如下 可以在命令行输入下面的指令以切换到淘宝镜像源 npm config set registry https://registry.npm.taobao.org…