【HarmonyOS NEXT】使用AVPlayer播放音乐,导致系统其它应用音乐播放暂停 - 播放音频焦点管理
HarmonyOS NEXT 的 AVPlayer 会打断其他应用播放根本原因在于系统默认的音频焦点策略是后来者优先你的应用启动播放时系统会先暂停其他应用的音频再将焦点交给你。解决方案的核心是根据你的业务场景选择合适的音频焦点策略。 方案一播放短音效用 SoundPool混音模式如果只是播放短促音效或提示音不建议用 AVPlayer最佳实践是使用SoundPool。它专为此类场景设计默认就不会打断其他应用的音频播放。关键在于创建 SoundPool 时将usage设为STREAM_USAGE_MUSIC等类型即可进入混音模式。typescriptimport { audio } from kit.AudioKit; import { media } from kit.MediaKit; // 创建SoundPool配置为混音模式不会打断其他音频 let audioRendererInfo: audio.AudioRendererInfo { usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 关键配置 rendererFlags: 1 }; let soundPool: media.SoundPool await media.createSoundPool(5, audioRendererInfo); // 加载资源并播放... 方案二播放音乐用 AudioSessionManager四种策略如果是正经播放音乐或长音频就需要通过AudioSessionManager主动声明你的“待客之道”。它有四种concurrencyMode可供选择模式效果适用场景CONCURRENCY_MIX_WITH_OTHERS(并发模式)与其他应用音频同时播放互不干扰。需要背景音和你的声音同时存在。CONCURRENCY_DUCK_OTHERS(降低音量模式)与其他应用音频同时播放但将其他应用音量降低。导航语音播报既要听清导航又不希望音乐中断。CONCURRENCY_PAUSE_OTHERS(暂停模式)暂停其他应用音频独占焦点。典型的音乐应用希望用户完全沉浸在你的音乐中。CONCURRENCY_DEFAULT(默认模式)使用系统默认策略与PAUSE_OTHERS效果类似。大多数通用场景不需要特殊定制。代码示例在 AVPlayer 准备播放前设置typescriptimport { audio } from kit.AudioKit; // 1. 获取 AudioSessionManager let audioManager audio.getAudioManager(); let sessionManager audioManager.getSessionManager(); // 2. 配置策略比如选择 混音模式 let strategy: audio.AudioSessionStrategy { concurrencyMode: audio.AudioConcurrencyMode.CONCURRENCY_MIX_WITH_OTHERS }; // 3. 在播放前激活音频会话策略生效 await sessionManager.activateAudioSession(strategy); // ... 然后执行 AVPlayer 的 play() 逻辑注意会话激活后若不手动关闭系统约1分钟后会自动释放。你可以在播放结束后主动调用deactivateAudioSession()来清理资源将控制权交还给系统。⚙️ AVPlayer 补充策略audioInterruptMode监听此外AVPlayer 本身也有audioInterruptMode属性和audioInterrupt事件让你能感知到“被其他应用打断了”这一事件并做出响应如暂停播放。typescript// 在 AVPlayer 的 prepared 状态回调中设置 avPlayer.audioInterruptMode audio.InterruptMode.INDEPENDENT_MODE; // 或 SHARED_MODE avPlayer.on(audioInterrupt, (info: audio.InterruptEvent) { // 根据 info.hintType 处理暂停、降低音量等 console.info(音频被中断类型 info.hintType); });INDEPENDENT_MODE模式可以更独立地管理音频焦点避免与系统的默认策略强耦合。 场景选型速查表你的场景推荐方案核心要点播放短音效(点击声、提示音等)方案一SoundPool创建时设置usage为STREAM_USAGE_MUSIC自动混音。播放音乐希望共存方案二AudioSessionManager设置concurrencyMode为CONCURRENCY_MIX_WITH_OTHERS。播放音乐希望不打扰方案二AudioSessionManager设置concurrencyMode为CONCURRENCY_PAUSE_OTHERS。播放导航音压低背景音方案二AudioSessionManager设置concurrencyMode为CONCURRENCY_DUCK_OTHERS。

相关新闻

嵌入式电路板 BIST 自检设计完全指南:上电时电压轨、时钟与存储器的全面自动测试流程

嵌入式电路板 BIST 自检设计完全指南:上电时电压轨、时钟与存储器的全面自动测试流程

嵌入式电路板 BIST 自检设计完全指南:上电时电压轨、时钟与存储器的全面自动测试流程 一、烧录完固件、上电、看指示灯——这套"测试流程"的盲区有多深 很多嵌入式开发者对上电测试的认知停留在"LED 亮了就算通过"。但在工业控制器、医疗设备和…

2026/7/24 3:13:19 阅读更多 →
NCNN Profiling 数据火焰图生成实战:从 Benchmark 命令行输出到 FlameGraph 可视化脚本管道

NCNN Profiling 数据火焰图生成实战:从 Benchmark 命令行输出到 FlameGraph 可视化脚本管道

NCNN Profiling 数据火焰图生成实战:从 Benchmark 命令行输出到 FlameGraph 可视化脚本管道 一、Benchmark 输出的信息孤岛:当 500 行数字报表无法揭示性能热点 NCNN 自带的 benchmark 工具可以对每个算子输出详细的性能数据。一次典型运行产生 300-500 …

2026/7/24 17:45:32 阅读更多 →
ES6-learning:7个让代码更优雅的ES6实用特性全解析

ES6-learning:7个让代码更优雅的ES6实用特性全解析

ES6-learning:7个让代码更优雅的ES6实用特性全解析 【免费下载链接】ES6-learning 《深入理解ES6》教程学习笔记 项目地址: https://gitcode.com/gh_mirrors/es6l/ES6-learning ES6-learning是一个专注于《深入理解ES6》教程学习的开源项目,提供了…

2026/7/22 16:41:16 阅读更多 →

最新新闻

AI数字员工核心技术解析与应用实践

AI数字员工核心技术解析与应用实践

1. 项目概述"AI数字员工效率革命:15分钟完成8小时工作"这个标题直指当前企业数字化转型中最具颠覆性的趋势——通过人工智能技术构建的数字员工系统,能够以惊人的效率完成传统人工需要长时间处理的工作任务。作为一名在企业自动化领域深耕多年…

2026/7/25 6:13:47 阅读更多 →
汽车零部件AI质检:TVA系统技术解析与应用实践

汽车零部件AI质检:TVA系统技术解析与应用实践

1. 项目背景与行业痛点汽车零部件检测领域长期存在一个行业级难题:传统人工目检方式效率低下且漏检率高。我曾走访过长三角地区多家 Tier1 供应商的质检车间,看到检测工位上老师傅们需要每天连续8小时盯着传送带上快速移动的零部件,用肉眼识别…

2026/7/25 6:13:47 阅读更多 →
智能书立:AI与毫米波雷达实现自适应阅读

智能书立:AI与毫米波雷达实现自适应阅读

1. 项目背景与核心价值去年帮朋友改造儿童书房时,发现传统书立有个致命缺陷——无论读者年龄大小,它都只会呆呆地站着。这让我开始思考:在AI技术如此成熟的今天,为什么不能给书立装上"大脑"?于是就有了这个将…

2026/7/25 6:13:47 阅读更多 →
Midjourney V8.1草稿模式随机风格生成功能详解

Midjourney V8.1草稿模式随机风格生成功能详解

Midjourney V8.1版本为草稿模式带来了一个实用的新功能——随机风格生成。通过在提示词中加入--sref random参数,用户可以一键生成24张不同风格的图片,为创意探索提供了更多可能性。这个功能的核心价值在于快速风格探索。对于需要大量灵感参考的设计师和…

2026/7/25 6:13:47 阅读更多 →
AI辅助WordPress安全:从挂马排查到常态化运维的人机协作指南

AI辅助WordPress安全:从挂马排查到常态化运维的人机协作指南

你有没有遇到过这种情况:辛辛苦苦建好的 WordPress 外贸网站,某天突然访问变慢,或者被搜索引擎标记为“不安全”,甚至后台出现一堆看不懂的陌生文件?这很可能就是被“挂马”了。对于很多外贸从业者来说,网站…

2026/7/25 6:13:47 阅读更多 →
VisionPro颜色抽取工具在工业检测中的应用与优化

VisionPro颜色抽取工具在工业检测中的应用与优化

1. 康耐视VisionPro颜色抽取工具核心功能解析CogColorExtractorTool是VisionPro视觉软件中专门用于颜色特征提取的模块化工具,在食品包装检测、药品标签识别、电子元件分类等场景有广泛应用。这个工具的核心价值在于能够将RGB或HSV色彩空间中的颜色特征转化为可量化…

2026/7/25 6:12:47 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻