android - Flutter:如何配置 audio_session 以避开其他人
问题描述
我需要在不中断现有播放列表的情况下播放音频。我的目标是通过电话上当前的音频服务播放音频,理想情况下我想避开音频并在其上播放我的流。与 GPS 服务在驾驶时所做的非常相似(Waze、谷歌地图)。
解决方案
脚步:
- 安装依赖项
- 创建 initAudioService() 函数
- 创建一个 AudioSession 实例
- 如示例中所示配置您的 AudioSession 实例
- 如示例所示初始化您的 AudioService
- 在 runApp 之前从 main 调用 initAudioService()
依赖项:
- 音频服务:^0.18.0;
- 音频会话:^0.1.6+1
例子:
导入“包:audio_service/audio_service.dart”; 导入“包:audio_session/audio_session.dart”; 导入“audio_player_service.dart”; 未来的 initAudioService() 异步 { //audio_session 实例 最终会话 = 等待 AudioSession.instance; //audio_session DUCK 其他配置 等待 session.configure(const AudioSessionConfiguration( avAudioSessionCategory: AVAudioSessionCategory.playback, avAudioSessionCategoryOptions: AVAudioSessionCategoryOptions.duckOthers, avAudioSessionMode: AVAudioSessionMode.defaultMode, avAudioSessionRouteSharingPolicy: AVAudioSessionRouteSharingPolicy.defaultPolicy, avAudioSessionSetActiveOptions: AVAudioSessionSetActiveOptions.none, androidAudioAttributes:AndroidAudioAttributes( contentType:AndroidAudioContentType.music, 标志:AndroidAudioFlags.none, 用法:AndroidAudioUsage.media, ), androidAudioFocusGainType:AndroidAudioFocusGainType.gainTransientMayDuck, androidWillPauseWhenDucked:真, )); //初始化音频服务 返回等待 AudioService.init( 生成器:()=> AudioPlayerService(), 配置:常量音频服务配置( androidNotificationChannelId: 'com.YOUR_COMPANY.YOUR_APP_NAME.audio', androidNotificationChannelName: '音频服务演示', androidNotificationOngoing:是的, androidStopForegroundOnPause:真, ), ); } //主要的 无效主()异步{ 等待 initAudioService(); runApp(const MaterialApp(home: MyApp())); }
推荐阅读
- flutter - 当我运行颤振项目时,它总是注意到我以下信息
- firebase - Firebase 托管受限访问
- typescript - FeathersJS - 从前挂钩到后挂钩共享/传递数据
- amazon-web-services - 如何将托管在 aws 上的 dockerized 应用程序从端口 3000 映射到根 url?
- android - 如何修复我的 RecyclerView 的 SearchView 过滤结果上的项目点击?
- google-apps-script - 使用应用程序脚本更新一系列单元格中的公式
- python - ValueError:查看限制最小值-36834.700000?
- go - 什么是名为 runtime.gopark 的 goroutine?
- python - Excel Pandas DataFrame 到嵌套 JSON
- sympy - Sympy:敏感性分析