当前位置: 首页 > news >正文

【安卓13】解决HDMI OUT和耳机等设备接入时会解除静音问题

安卓原生定义了部分外部设备接入时是否静音,比如耳机、有线扬声器、HDMIOUT设备等,这些设备接入时,安卓会设置AudioSystem.STREAM_MUSIC为非静音状态
在这里插入图片描述
从代码里可以看出,当一个newDevice 接入时,会携带一个deviceID,然后根据设备ID判断这个 设备是否包含在解除静音的设备集合里
在这里插入图片描述
这里的几个设备分别对应

AudioSystem.DEVICE_OUT_WIRED_HEADSET有线耳机
AudioSystem.DEVICE_OUT_WIRED_HEADPHONE有线扬声器
AudioSystem.DEVICE_OUT_LINE有线线路输出
AudioSystem.DEVICE_OUT_ALL_A2DP_SETA2DP蓝牙设备
AudioSystem.DEVICE_OUT_ALL_USB_SETUSB音频设备
AudioSystem.DEVICE_OUT_HDMIAudioSystem.DEVICE_OUT_HDMI

大家按照自己所需移除调对应的设备即可,比如我不想让HDMIOUT接入的时候解除静音,就这样改

    private static final Set<Integer> DEVICE_MEDIA_UNMUTED_ON_PLUG_SET;static {DEVICE_MEDIA_UNMUTED_ON_PLUG_SET = new HashSet<>();DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.add(AudioSystem.DEVICE_OUT_WIRED_HEADSET);DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.add(AudioSystem.DEVICE_OUT_WIRED_HEADPHONE);DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.add(AudioSystem.DEVICE_OUT_LINE);DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.addAll(AudioSystem.DEVICE_OUT_ALL_A2DP_SET);DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.addAll(AudioSystem.DEVICE_OUT_ALL_BLE_SET);DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.addAll(AudioSystem.DEVICE_OUT_ALL_USB_SET);//DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.add(AudioSystem.DEVICE_OUT_HDMI);}

或者我不想让ARC设备接入后保持静音状态,就判断一下设备类型设置一下:

    private void onAccessoryPlugMediaUnmute(int newDevice) {if (DEBUG_VOL) {Log.i(TAG, String.format("onAccessoryPlugMediaUnmute newDevice=%d [%s]",newDevice, AudioSystem.getOutputDeviceName(newDevice)));}if (AudioSystem.getOutputDeviceName(newDevice).contains("hdmi_arc")) {Log.d(TAG, "lsl:onAccessoryPlugMediaUnmute: HDMI ARC device connected");mStreamStates[AudioSystem.STREAM_MUSIC].mute(false, "onAccessoryPlugMediaUnmute");}

就这样。


http://www.mrgr.cn/news/17952.html

相关文章:

  • 大数据测试知识架构与技术框架分享|大数据测试工程师学习方向
  • 这一届“出道”的数字人,已经拿捧上了“铁饭碗”
  • 如何读懂以太坊源代码
  • C++刷题之二:vector迭代器的使用
  • springboot 配置ssl支持https
  • 43款最新泛微Ecology9精品应用(一键导入,轻松上手)
  • Axure健康助理小程序原型图70+页,医疗类高保真高交互模板
  • JAVAEE初阶第三节——多线程进阶
  • free命令
  • kuiperInfer学习笔记
  • 共享自助台球厅小程序系统
  • 平价蓝牙耳机哪个音质好性价比高?四大超值平价机型推荐
  • 开学季儿童护眼台灯怎么选择?盘点央视公布十大护眼灯!
  • vue2和vue3双向绑定的原理
  • Cmake的基本语法操作
  • 基于Java+MySQL实现在线书店订购系统
  • 第11章 第9节 基于软件质量特性的测试(软件评测师)
  • 米家“智能中枢网关”和“智能多模网关”有什么区别?
  • 三十一、gorm快速入门
  • AI Agent开发实战1-Agent开发绪论与国产大模型的架构与工作机制原理