Flutter:Android端Audio Service锁屏窗口图标异常问题
解决Audio Service Android锁屏图标异常问题
核心原因
Android锁屏媒体控件的图标取自通知渠道图标或Audio Service配置的媒体会话图标,若图标不符合Android单色规范(要求透明背景、白色前景),系统会自动将其转为黑色圆形。
具体解决步骤
准备合规图标
- 制作白色前景、透明背景的PNG图标,尺寸建议48x48dp(可适配不同dpi目录,如drawable-hdpi、drawable-xhdpi等),命名为
ic_media_control.png,放入android/app/src/main/res/drawable/目录。
- 制作白色前景、透明背景的PNG图标,尺寸建议48x48dp(可适配不同dpi目录,如drawable-hdpi、drawable-xhdpi等),命名为
配置Audio Service参数
在初始化Audio Service时,指定媒体控件图标:await AudioService.start( backgroundTaskEntrypoint: _backgroundTaskEntrypoint, config: AudioServiceConfig( androidNotificationChannelId: 'com.your.app.channel.audio', androidNotificationChannelName: '音频播放', androidNotificationIcon: 'ic_media_control', // 无需加.png后缀 androidNotificationColor: Colors.blue.value, // 可选:设置通知栏背景色 ), );同步通知渠道图标(可选)
若已创建过音频通知渠道,需同步更新渠道图标:if (Platform.isAndroid) { final channel = AndroidNotificationChannel( 'com.your.app.channel.audio', '音频播放', description: '后台音频播放通知', icon: DrawableResourceAndroidIcon('ic_media_control'), ); await AudioServiceAndroidNotificationManager().createNotificationChannel(channel); }
常见误区
- 禁止使用带彩色背景的图标,Android系统会强制将非单色图标转为黑色剪影,导致出现黑色圆形。
- 配置图标时只需写文件名,不要带后缀。
- 推送通知图标(AndroidManifest.xml配置)与媒体控件图标是不同配置项,需单独设置。
内容的提问来源于stack exchange,提问作者csacchetti
相关产品推荐
相关产品推荐

