Flutter AwesomeNotification通知音效无法播放(含自定义音效)求助
解决AwesomeNotifications自定义音效及默认铃声失效问题
一、基础文件与配置排查
音频文件校验:
- 确保
res_security_alarm.m4a采用Android兼容编码(推荐AAC-LC标准编码),避免因编码不兼容导致无声。 - 文件名需全小写、无空格或特殊字符(当前文件名符合要求,需确认无后缀拼写错误)。
- 确认文件放置在
android/app/src/main/res/raw目录(目录不存在需手动创建),且已被正确打包进APK。
- 确保
通知通道特性注意:
Android通知通道一旦创建,后续修改配置(如soundSource、defaultRingtoneType)不会生效,必须卸载重装APP才能应用新配置,这是容易忽略的关键规则。
二、分步测试定位问题
恢复默认铃声验证:
修改通道初始化代码,注释自定义音效配置,启用默认铃声:NotificationChannel( channelKey: 'alarms_channel', channelName: 'Alarms', channelDescription: 'Notification tests as alarms', importance: NotificationImportance.Max, // soundSource: 'resource://raw/res_security_alarm', playSound: true, defaultRingtoneType: DefaultRingtoneType.Alarm, defaultPrivacy: NotificationPrivacy.Public, defaultColor: COLOR_BACKGROUND, ledColor: Colors.orange, ledOnMs: 1000, ledOffMs: 500, enableLights: true, enableVibration: true, )卸载重装APP后触发通知,确认默认铃声是否正常。若仍无声,优先检查权限与系统设置。
自定义音效测试:
若默认铃声正常,再尝试自定义音效:- 保持通道
soundSource: 'resource://raw/res_security_alarm'配置,卸载重装APP使通道生效。 - 或仅在创建通知时设置
customSound,同时注释通道的soundSource,避免配置冲突。
- 保持通道
三、权限与系统设置检查
- APP通知权限:
进入系统设置→应用→目标APP→通知,确保:- 允许通知开关已开启
- 对应“Alarms”通知通道的声音选项未关闭
- 系统音量配置:
NotificationCategory.Alarm类别的通知使用闹钟音量,而非媒体音量,检查闹钟音量是否被调至0。 - Android 12+权限补充:
若使用criticalAlert和fullScreenIntent,需在android/app/src/main/AndroidManifest.xml添加权限:<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" /> <!-- Android 13+ 需添加通知权限 --> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
四、调试技巧
- 开启
debug: true后,在Android Studio的Logcat中搜索AwesomeNotifications,查看是否有隐藏错误日志(如音频文件未找到提示)。 - 分别测试前台、后台场景下的通知声音,部分机型前台通知需额外确认权限配置。
内容的提问来源于stack exchange,提问作者Laurent Blanc
相关产品推荐
相关产品推荐

