HarmonyOS鸿蒙Next中Flutter audio_session插件适配

HarmonyOS鸿蒙Next中Flutter audio_session插件适配 问题描述: Flutter插件 audio_session: 设置应用程序的 iOS 音频会话类别和 Android 音频属性,并管理应用程序的音频焦点、混合和闪避行为。其他端适配正常, 鸿蒙端缺少适配

问题现象: Flutter插件 audio_session: 设置应用程序的 iOS 音频会话类别和 Android 音频属性,并管理应用程序的音频焦点、混合和闪避行为。鸿蒙端缺少适配

版本信息: Flutter ohos分支

插件链接: https://pub.dev/packages/audio_session

cke_5338.png


更多关于HarmonyOS鸿蒙Next中Flutter audio_session插件适配的实战教程也可以访问 https://www.itying.com/category-92-b0.html

6 回复

开发者你好,audio_session插件当前已适配。

【解决方案】

audio_session已完成适配,仓库地址根据不同版本参考以下:

  • 3.7推荐使用版本0.1.18
  • 3.22推荐使用版本0.1.21
  • 3.27推荐使用版本0.2.2

更多关于HarmonyOS鸿蒙Next中Flutter audio_session插件适配的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


问题: 用户使用过程中出现的问题: 在制作谱子过程中接了个电话,然后再去播放我制作好的谱子的时候声音就没有了,重后一下就ok了

实际测试描述: 现使用的是音频焦点sdk,flutter_audio_session 但是我本地测试的是正常的 不会出现接电话或者闹钟之后就没有声音的情况 这边想要你们帮忙试下看下是否有这个情况

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

开发者你好,这边本地使用6.0.2 Release版本的DevEco Studio和6.0.0.100 API 20版本的设备运行audio_session中的示例,在被闹钟打断后可以正常继续播放音频,方便的话可以提供下您这边的demo

和DevEco Studio版本、设备版本以便复现问题进一步分析吗?

在HarmonyOS Next中适配Flutter audio_session插件,需基于ArkTS/ArkUI重写原生平台接口。鸿蒙不支持直接使用Android/iOS的audio_session原生代码,需调用鸿蒙音频管理API(如@ohos.multimedia.audio)实现音频焦点、会话类别和路由控制。开发者需创建鸿蒙原生模块,通过FFI或Channel机制与Flutter层通信,替换原插件中的平台特定实现。注意鸿蒙音频API的差异,如音频流类型定义和焦点请求方式。

在HarmonyOS Next中,audio_session插件目前确实缺少原生适配。这是因为该插件主要针对iOS的AVAudioSession和Android的AudioManager进行封装,而HarmonyOS拥有自己独立的音频管理框架(Audio Kit)。

要使其在HarmonyOS Next的Flutter ohos分支上工作,需要进行平台特定的适配。核心是为HarmonyOS实现AudioSession接口。你需要创建一个harmonyos目录(例如android/同级),并实现以下关键功能:

  1. 音频属性与策略设置:利用HarmonyOS的audio模块(如@ohos.multimedia.audio)来设置音频流类型、音频场景(AudioScene)和管理音频中断行为(AudioInterrupt)。这对应插件的configure方法。
  2. 音频焦点管理:通过AudioManager的音频中断监听器(on('audioInterrupt'))来监听和响应音频焦点事件,实现与Android AudioFocus类似的行为。
  3. 插件桥接:在harmonyos/目录下创建插件注册文件(如AudioSessionPlugin.harmonyos.dart和对应的Native层实现),使用HarmonyOSPlugin机制将Dart层调用桥接到上述HarmonyOS音频API。

由于这是为新的操作系统进行适配,你需要参考HarmonyOS的音频开发指南来实现具体逻辑。当前没有现成的HarmonyOS版audio_session插件,需要自行开发或等待社区贡献。适配的关键是将插件定义的通用音频会话概念映射到HarmonyOS的音频模型上。

回到顶部