首页 > 其他分享 >android audio不同音频流,(三)各音频流默认音量加载过程

android audio不同音频流,(三)各音频流默认音量加载过程

时间:2024-07-20 11:29:48浏览次数:15  
标签:STREAM getDefaultStreamVolume 音频 AudioManager stmt VOLUME android audio AudioSys

各音频流默认值,定义文件路径:
frameworks/base/media/java/android/media/AudioSystem.java

默认音量定义数组:
 /** @hide */
 public static int[] DEFAULT_STREAM_VOLUME = new int[] {
          4,  // STREAM_VOICE_CALL
          7,  // STREAM_SYSTEM
          5,  // STREAM_RING
          5, // STREAM_MUSIC
          6,  // STREAM_ALARM
          5,  // STREAM_NOTIFICATION
          7,  // STREAM_BLUETOOTH_SCO
          7,  // STREAM_SYSTEM_ENFORCED
          5, // STREAM_DTMF
          5, // STREAM_TTS
          5, // STREAM_ACCESSIBILITY
          5, // STREAM_ASSISTANT
      };

 不同音频流,默认音量get函数:
   /** @hide */
   public static int getDefaultStreamVolume(int streamType) {
          return DEFAULT_STREAM_VOLUME[streamType];
     }

各音频流默认值,加载文件路径:frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java 

音频流,默认值加载:

      private void loadVolumeLevels(SQLiteDatabase db) {
          SQLiteStatement stmt = null;
          try {
             。。。     

             loadSetting(stmt, Settings.System.VOLUME_MUSIC,
                      AudioSystem.getDefaultStreamVolume(AudioManager.STREAM_MUSIC));
              loadSetting(stmt, Settings.System.VOLUME_RING,
                      AudioSystem.getDefaultStreamVolume(AudioManager.STREAM_RING));
              loadSetting(stmt, Settings.System.VOLUME_SYSTEM,
                      AudioSystem.getDefaultStreamVolume(AudioManager.STREAM_SYSTEM));
              loadSetting(
                      stmt,
                      Settings.System.VOLUME_VOICE,
                      AudioSystem.getDefaultStreamVolume(AudioManager.STREAM_VOICE_CALL));
              loadSetting(stmt, Settings.System.VOLUME_ALARM,
                      AudioSystem.getDefaultStreamVolume(AudioManager.STREAM_ALARM));
              loadSetting(
                      stmt,
                      Settings.System.VOLUME_NOTIFICATION,
                      AudioSystem.getDefaultStreamVolume(AudioManager.STREAM_NOTIFICATION));
              loadSetting(
                      stmt,
                      Settings.System.VOLUME_BLUETOOTH_SCO,                               AudioSystem.getDefaultStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO));  
             。。。     
          } finally {
              if (stmt != null) stmt.close();
          }
  }

以上,系统启动过程,拉起loadVolumeLevels()函数,将默认音频流音量保存在数据库。

标签:STREAM,getDefaultStreamVolume,音频,AudioManager,stmt,VOLUME,android,audio,AudioSys
From: https://blog.csdn.net/xuann/article/details/140520762

相关文章

  • 简化Android数据管理:深入探索SQLite数据库
    SQLite数据库在Android中的使用SQLite是一种精巧的、轻量级的、无服务器的、零配置的、事务性SQL数据库引擎。相较于其他数据库系统,SQLite更适用于需要轻量级解决方案的移动应用场景。本文将详细介绍SQLite数据库在Android中的使用,包括数据库的创建、表的建立、数据的增删......
  • Android开发 - inflate方法与创建视图解析
    简介在Android开发过程中,很多地方都不可避免的使用到inflate方法,如在给Fragment进行CreateView(创建视图)时,我们通常是inflater.inflate(R.layout.xxx,container,false)来调用inflate方法的,不难发现,inflate方法的作用是将一个xml布局文件变成一个view对象。注意事项......
  • Android笔试面试题AI答之Activity(2)
    答案仅供参考,大部分为文心一言AI作答目录1.请介绍一下Activity生命周期?1.完全生命周期2.可见生命周期3.前台生命周期4.配置更改5.特殊场景2.请介绍一下横竖屏切换时Activity的生命周期变化?1.默认行为(未设置`android:configChanges`)2.设置`android:configChang......
  • Android 14 适配之 - 隐式/显示 Intent 和 广播适配
    隐式Intent对隐式Intent限制:对Android14(API级别34)或更高版本为目标平台的应用,Android会限制应用向内部应用组件发送隐式intent:1.即隐式intent只能发送给导出的组件。在应用必须使用显式intent来发送组件,且被发送的组件是未被导出的属性配置。2.如果被发出的......
  • 从零开始部署yolov8到安卓手机详细教程 ——使用YOLOV8大模型开发的物体检测Android手
    1.使用了yolov8大模型来进行物体检测android手机APP⒉.使用了coco数据集进行训练,app可以检测出“人类"∵"自行车"."汽车"∵"摩托车"."飞机","公共汽车"∵"火车","卡车"∵."船","红绿灯","消防栓","停车标志"∵,"停车收费表&......
  • Android自动化 - 环境准备
    ADB简介什么是ADBADB全称为AndroidDebugBridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是Android设备。ADB也是AndroidSDK中的一个工具,可以直接操作管理Android模拟器或者真实的Android设备。为什么要用ADB运行设备的......
  • Android自动化 - 基础总集
    本笔记根据微信读书的:《Android自动化测试实战》简介测试金字塔金字塔模型将测试分为单元(Unit)、服务(Service)和用户界面(UserInterface,UI)这3个层级;在测试发展的历程中,也出现了一些重新定义金字塔层级的测试模型,尽管对分层的具体描述各不相同(有人将这3个层级分别定义为单......
  • Android 小白菜鸟从入门到精通教程
    前言Android一词最早出现于法国作家利尔亚当(AugusteVilliersdel'Isle-Adam)在1886年发表的科幻小说《未来的夏娃》(L'èvefuture)中。他将外表像人的机器起名为Android。从初学者的角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了Android应用程序开发应该掌握的各方面......
  • 【蓝牙】Android 13 蓝牙源码分析
    Android13在蓝牙模块中进行了多项改进和优化。本文将详细分析其核心组件及其工作原理,包括BluetoothManagerService、AdapterService、AdapterProperties、蓝牙连接管理和JNI接口。1.BluetoothManagerServiceBluetoothManagerService是蓝牙管理的核心类,负责启动和停止蓝......
  • Python数据获取(网页视频、音频版)
    爬取数据,上一章有介绍,不懂流言私信或者评论交流即可,在Python中编写爬虫通常涉及以下几个步骤:发送HTTP请求:使用requests库向目标网站发送请求。解析网页内容:使用BeautifulSoup从HTML中解析出需要的数据。下载视频文件:使用requests下载视频文件。保存到本地:将下载的视频文件......