Android16音频之设置音频模式setMode:用法实例(七十一)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者

博主新书推荐:《Android系统多媒体进阶实战》🚀
Android Audio工程师专栏地址:Audio工程师进阶系列【原创干货持续更新中...... 】🚀
Android多媒体专栏地址:多媒体系统工程师系列【原创干货持续更新中...... 】🚀
推荐1:车载系统实战课地址:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀
推荐2:HIDL与AIDL实战课地址:Android14 Binder之HIDL与AIDL通信实战课 🚀
推荐3:Android15音效实战课地址:Android15快速自定义与集成音效实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注:Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

      • [🌻1. 前言](#🌻1. 前言)
      • [🌻2. Android16进阶之设置音频模式setMode介绍](#🌻2. Android16进阶之设置音频模式setMode介绍)
      • [🌻3. 代码实例](#🌻3. 代码实例)
        • [🌻3.1 使用setMode切换通信模式启动VoIP](#🌻3.1 使用setMode切换通信模式启动VoIP)
        • [🌻3.2 使用setMode恢复普通模式](#🌻3.2 使用setMode恢复普通模式)
        • [🌻3.3 使用setMode放大铃声并切换路由](#🌻3.3 使用setMode放大铃声并切换路由)
      • [🌻3.4 用法总结](#🌻3.4 用法总结)

🌻1. 前言

本篇目的:Android16进阶之设置音频模式setMode:用法实例

🌻2. Android16进阶之设置音频模式setMode介绍

  1. 基本概念

    setMode通过AudioManager切换全局音频模式,影响系统路由、回声消除与增益策略,Android16保留MODE_NORMAL MODE_RINGTONE MODE_IN_CALL MODE_IN_COMMUNICATION四种主要场景。

  2. 功能

    立即改变输入输出路由;触发回声消除与降噪参数更新;影响焦点抢占优先级;可配合蓝牙、听筒、外放切换;通话结束后需主动恢复。

  3. 使用限制

    需要MODIFY_AUDIO_SETTINGS权限;MODE_IN_CALL需系统签名或运营商权限;切换后必须归还;不可在多线程频繁调用;部分设备仅支持固定模式。

  4. 性能特性

    AudioManager单例指令;直通AudioPolicyService;无JNI阻塞;切换延迟低于50毫秒;与硬件功放同步更新。

  5. 使用场景

    VoIP通话切听筒、录音时关闭回声、来电铃声放大、游戏语音切换通信模式。

🌻3. 代码实例

🌻3.1 使用setMode切换通信模式启动VoIP
  1. 应用场景

    用户点击拨打,应用强制进入通话路由。

  2. 用法实例

java 复制代码
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_COMMUNICATION);
am.setSpeakerphoneOn(false);

代码功能:切到通信模式并关闭扬声器,语音从听筒输出,系统开启回声消除。

🌻3.2 使用setMode恢复普通模式
  1. 应用场景

    VoIP挂断后立即还原全局状态。

  2. 用法实例

java 复制代码
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_NORMAL);
am.setSpeakerphoneOn(true);

代码功能:退回普通模式,扬声器恢复可用,系统关闭通话级增益。

🌻3.3 使用setMode放大铃声并切换路由
  1. 应用场景

    来电界面强制响铃并走高增益路由。

  2. 用法实例

java 复制代码
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_RINGTONE);
am.setSpeakerphoneOn(true);

代码功能:进入响铃模式,系统选择高增益通道,确保外放音量最大。

🌻3.4 用法总结

代码关键字 功能描述 典型应用
setMode MODE_IN_COMMUNICATION 通信模式 VoIP听筒
setMode MODE_NORMAL 普通模式 挂断恢复
setMode MODE_RINGTONE 响铃模式 来电放大
相关推荐
9527华安9 小时前
FPGA纯verilog实现DP视频接口,支持2K60帧分辨率,提供3套工程源码和技术支持
fpga开发·音视频·dp
MetaEnchanter17 小时前
视频章节怎么整理:填好时间点,导出前检查这几处
音视频
小豆庄20 小时前
测试视频里的人脸车牌敏感信息自动化脱敏方案
计算机视觉·目标跟踪·ffmpeg·音视频·边缘计算·视频·敏捷流程
光泽雨1 天前
WPF 音视频四大核心方案对比
wpf·音视频
揽秀亭长1 天前
音频转乐谱如何实现?四类AI 扒谱工具的流程
音视频
敢敢のwings2 天前
SimpleMemVLA 深度解读:把原生视频上下文变成机器人的记忆
数码相机·机器人·音视频
ck0135792 天前
视频片段提取与视频修剪的区别:多时间段选择及导出流程
人工智能·音视频·视频
沐飞工具箱2 天前
游戏、漫画、视频里的外语怎么实时翻译?从 OCR + AI 原理聊聊 VoriTrans 屏幕翻译
人工智能·游戏·实时互动·音视频·自动翻译
小豆庄2 天前
监控视频脱敏的追踪漂移与ID撞号陷阱
目标跟踪·ffmpeg·音视频·视频·敏捷流程
原子延迟3 天前
批量压缩视频会变大?HandBrake等3款(2026)
图像处理·人工智能·计算机视觉·音视频