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

news2024/11/15 13:45:34

安卓原生定义了部分外部设备接入时是否静音,比如耳机、有线扬声器、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.coloradmin.cn/o/2098080.html

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

相关文章

Java基于微信小程序的超市购物管理系统

1 简介 Java基于微信小程序的超市购物管理系统&#xff0c;此超市购物系统利用当下成熟完善的springboot框架&#xff0c;使用跨平台的可开发大型商业网站的Java语言&#xff0c;以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了收货地址管理、购物车管理、…

Win11 / Win10 系统极化工具,降低游戏延迟效果明显

Win11 / Win10 系统优化工具,降低游戏延迟效果明显 Windows 系统优化就是精简系统一些功能组件、对一些系统功能进行设置等&#xff0c;这样可以减少不必要的硬件资源占用。 全面的系统优化功能外&#xff0c;据不少网友表示通过优化后 CS GO 游戏降低输入延迟效果明显。 免费…

领夹麦克风哪个牌子音质好?西圣、博雅、枫笛领夹麦克风对比

当今的直播、短视频已经深深的融入到了我们的生活当中&#xff0c;很多小伙伴会通过拍摄短视频、Vlog来分享自己生活精彩的瞬间。不过录制视频时&#xff0c;如果单纯靠手机拾音会发现&#xff0c;音频效果是极差的&#xff0c;特别距离手机越远效果会越明显&#xff0c;会出现…

【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十二)

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

一文直接搞懂SpringMVC完整版教程

三、SpringMVC 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分 M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 一类称为实体…

《黑神话悟空》广智打法技巧图文攻略详解

​黑神话悟空广智会挥舞火刀砍我们&#xff0c;是前期一个较难的boss&#xff0c;那么广智怎么打&#xff1f;基本就是别贪刀&#xff0c;躲技能&#xff0c;然后砍就完事儿了。这个boss之所以是第一个boss&#xff0c;可能就是锻炼大家躲技能的能力的&#xff0c;下面就来看下…

大数据测试知识架构与技术框架分享|大数据测试工程师学习方向

本文一起看一下关于大数据技术的基本的技术体系和典型技术栈&#xff0c;帮助想要从事大数据方向软件测试的朋友快速了解需要掌握的知识架构。 大数据基本的思想、它的整体框架&#xff0c;与以往的数据相关体系实际上是相类似的。区别主要在于数据的收集、存储包括资源的调度…

怎么一键导出多条数据的二维码?一物一码的在线生成技巧

怎么将多条数据生成单独二维码呢&#xff1f;现在扫描物品包装的二维码经常会看到对应的产品编号&#xff0c;一般是数字和字母组合内容&#xff0c;每个物品的编码都是不同的&#xff0c;怎么把不同的信息批量生成二维码呢&#xff1f;下面来给大家分享一物一码的使用技巧&…

ios动态创建控件及添加事件

效果如下&#xff0c;就是在一个空白页面动态添加控件&#xff0c;给按钮添加事件&#xff0c;图片名字和标题放入plist文件,plist是个Array&#xff0c;每一项是Dictionary。Dictionary里面方icon和name两个String的key。图片都放入Assets.xcassets。如果需要使用imageWithCon…

再次拿下品牌全球代言人,王鹤棣商业价值再度证明!

9月2日&#xff0c;FENTY BEAUTY品牌正式官宣王鹤棣为全球代言人&#xff0c;这也是该品牌创立至今官宣的中国首位全球代言人。 FENTY BEAUTY是由美国歌手Rihanna创立于2017年的高端美妆品牌&#xff0c;也是LV母公司LVMH集团联手RIHANNA一同孵化的品牌&#xff0c;因其产品具有…

【精选】基于HTML5技术应用于智能宠物寻找与领养系统的设计与实现(全网独一无二,阿龙独创)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

2020年ICPC南京站 补题记录

文章目录 A - Ah, Its Yesterday Once More&#xff08;构造&#xff09;E - Evil Coordinate&#xff08;构造&#xff09;F - Fireworks&#xff08;概率三分&#xff09;H - Harmonious Rectangle&#xff08;打表&#xff09;K - K Co-prime Permutation&#xff08;签到&a…

Git如何安装和配置

一、Git 的安装 1、Git 的官网 Git (git-scm.com) 2、下载 Git for Windows 在官网下载好 Git 的安装文件后&#xff0c;接下来就可以进行安装了。 3、安装 Git 以管理员身份运行你下载的安装文件&#xff1a; 然后就可以进入安装向导了。 4、验证是否安装成功 当安装向…

数据资产入表和数据治理的联系和区别是什么?

引言&#xff1a;数据资产入表是指将企业的数据资源以资产的形式纳入财务报表中进行管理和计量。随着信息技术的飞速发展&#xff0c;数据已成为企业的重要资产之一。数据资产能够为企业带来直接或间接的经济利益&#xff0c;如通过数据分析优化业务流程、提升客户满意度、增加…

微信小程序安卓14蓝牙连接需要打开微信附近设备权限提醒

1.wx.onBluetoothDeviceFound去搜索附近的设备如果搜索不到一个设备则默认附近设备权限没打开&#xff08;ps微信开放社区里面的 wx.getAppAuthorizeSetting接口里面的bluetoothAuthorized一样会返回“authorized”判断不了只要允许授权蓝牙&#xff0c;附近设备权限没授权依然…

class 4: vue.js 3监听器 watch

某些情况下需要监听某个响应式数据的变化&#xff0c;这时就需要使用监听器(watch)来实现了 watch的使用语法如下 选项&#xff1a;watch类型&#xff1a;{ [key: string]: string | Function | Object | Array}详解&#xff1a;watch属性是一个对象&#xff0c;该对象的键(k…

Unity (编辑器)数据持久化 之 ScriptableObject初识与创建

1.什么是ScriptableObject ScriptableObject - Unity 手册 如题&#xff0c;一个可以在Unity编辑器中方便编辑数据的工具 一个脚本继承该类&#xff0c;并且序列化或者有公共变量&#xff0c;即可在Inspector窗口看到它们 其特点&#xff1a; Q:是否可以将 ScriptableObject…

Nodejs的详细安装过程与步骤

目录 一、下载node.js 二、安装程序 三、检查是否安装成功 四、新建文件夹 五、配置环境变量 一、下载node.js 下载地址&#xff1a;Node.js — Run JavaScript Everywhere 选择想要下载的版本&#xff0c;点击Download Node.js 二、安装程序 &#xff08;1&#xff0…

食家巷桃酥,一口酥脆,满是幸福

在美食的世界里&#xff0c;总有一些味道能瞬间勾起我们的回忆&#xff0c;食家巷桃酥便是其中之一。初见食家巷桃酥&#xff0c;那金黄的色泽便让人眼前一亮。每一块桃酥都像是一件小小的艺术品&#xff0c;边缘微微隆起&#xff0c;中间微微凹陷&#xff0c;散发着诱人的香气…