You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter升级后iOS 18.4.1音频后台播放时通知与控制中心控件不显示问题求助

Flutter升级后iOS 18.4.1音频后台播放时通知与控制中心控件不显示问题求助

大家好,我最近遇到了一个棘手的问题,想请教下各位开发者朋友:

我把Flutter升级到3.29.3,同时更新了关联的音频插件(just_audio: ^0.10.2audio_service: ^0.18.18audio_session: ^0.2.1)后,在iOS 18.4.1设备上出现了异常:音频后台播放时,通知栏和控制中心的音频控制控件完全不显示,但音频本身还能正常播放。之前的版本没有这个问题,Android端也一切正常。

更奇怪的是,我特意克隆了audio_service的官方示例项目,在iOS 18.4的模拟器和真机上测试,结果同样是后台播放时没有通知和控制中心控件,音频却能正常运行。

我的开发环境信息如下:

[✓] Flutter (Channel stable, 3.29.3, on macOS 15.4.1 24E263 darwin-arm64, locale es-ES)
    • Flutter version 3.29.3 on channel stable at /Users/gvam/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ea121f8859 (5 weeks ago), 2025-04-11 19:10:07 +0000
    • Engine revision cf56914b32
    • Dart version 3.7.2
    • DevTools version 2.42.3

[✓] Xcode - develop for iOS and macOS (Xcode 16.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16E140
    • CocoaPods version 1.16.2

有没有朋友遇到过类似的情况?或者能给一些排查方向?我怀疑是插件和iOS 18.4.1的兼容性问题,但暂时没时间提交完整的issue表单,先在这里求助大家了。

可能的排查方向建议

  • 检查iOS权限与后台配置
    确认Info.plist中是否正确添加了后台音频权限:

    <key>UIBackgroundModes</key>
    <array>
        <string>audio</string>
    </array>
    

    同时检查是否配置了NSNotificationUsageDescription,并在代码中请求了通知权限——iOS 18对权限校验可能更严格,即使是音频通知也可能需要基础的通知权限支持。

  • 验证音频会话配置
    确保在初始化音频前正确配置并激活了AudioSession,示例代码如下:

    final session = await AudioSession.instance;
    await session.configure(AudioSessionConfiguration.playback());
    await session.setActive(true);
    

    若会话未正确激活,系统可能无法识别音频播放状态,进而不显示控制控件。

  • 尝试升级插件到最新版本
    当前使用的插件版本可能还未适配iOS 18.4.1,建议查看just_audioaudio_serviceaudio_session的最新版本,升级后再测试是否解决问题。

  • 测试最新版官方示例
    确认克隆的audio_service示例是最新代码,旧示例可能未适配新系统,拉取最新代码重新编译测试。

  • 检查Xcode项目设置
    在Xcode中打开项目,进入Signing & Capabilities页面,确认Background Modes下的Audio, AirPlay, and Picture in Picture已勾选,同时检查通知相关Capability是否配置正确。

内容来源于stack exchange

火山引擎 最新活动