You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter iOS结合Firebase本地通知自定义音效失效问题

Flutter Local Notifications + FCM 自定义音效失效解决指南

针对你遇到的自定义m4a音效无法正常播放的问题,按以下步骤排查修复:

1. 确认iOS端文件配置(核心第一步)

  • 打开Xcode,选中你的Runner项目,进入Build Phases -> Copy Bundle Resources,检查你的m4a音效文件是否在资源列表中。如果不在,点击+按钮添加文件——仅仅把文件拖到Runner文件夹里是不够的,必须确保它被打包进App bundle。
  • 检查音效文件:必须是AAC编码的m4a,采样率推荐44.1kHz,避免使用带DRM保护或编码不兼容的文件;文件名不要包含空格、中文或特殊字符,比如用custom_alert这类纯英文+下划线的命名。

2. Flutter Local Notifications 参数修正

在配置IOSNotificationDetails时,sound参数必须传入完整的文件名(包含扩展名),而不是只传文件名:

// 正确写法
final iosNotificationDetails = IOSNotificationDetails(
  sound: 'custom_sound.m4a', // 带扩展名
);

final notificationDetails = NotificationDetails(
  iOS: iosNotificationDetails,
);

await flutterLocalNotificationsPlugin.show(
  0,
  '通知标题',
  '通知内容',
  notificationDetails,
);

3. FCM推送Payload配置(针对后台推送)

如果是通过FCM后台发送通知,需要在推送Payload的aps字段里指定完整音效文件名:

{
  "aps": {
    "alert": {
      "title": "测试通知",
      "body": "自定义音效测试"
    },
    "sound": "custom_sound.m4a" // 必须带扩展名
  }
}

注意:静默推送(content-available: 1)不会触发自定义音效,只有普通可见通知才会生效。

4. 权限与系统设置检查

  • 确认App已获取通知权限,且用户在iOS系统设置中没有关闭该App的通知声音(路径:设置→通知→你的App→开启“声音”选项)。
  • 必须使用iOS真机测试,模拟器对自定义音效的支持存在限制。

内容的提问来源于stack exchange,提问作者Mahmoud Azab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:42:33