Flutter:本地通知自定义声音无法正常工作。

6

我想为我的通知播放自定义音频。但在我的安卓模拟器上,它只会播放默认声音,在我的设备上甚至没有声音。 我尝试了这个方法,但它并没有帮助我。


FlutterLocalNotificationsPlugin _notifications = FlutterLocalNotificationsPlugin();

var initializationSettingsAndroid = AndroidInitializationSettings('app_icon');
var initializationSettingsIOS = IOSInitializationSettings();
var initializationSettings = InitializationSettings(initializationSettingsAndroid, initializationSettingsIOS);
await _notifications.initialize(initializationSettings);
var androidPlatformChannelSpecifics = AndroidNotificationDetails('test_channel', 'test', '', playSound: true, sound: RawResourceAndroidNotificationSound('my_sound'));
var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await _notifications.show(0, 'test', 'this is a test', platformChannelSpecifics);

我没有收到任何错误信息。我的文件位于android/app/src/main/res/raw/my_sound.mp3。


1
你解决了这个问题吗? - Zilaid
@JakesMD 有您的问题的任何更新吗? - MNFS
不好意思,我很久以前就放弃了这个项目。 - JakesMD
2个回答

20

简单的解决方法!您需要完全卸载并重新安装该应用程序,而不仅仅是更新。第一次安装时的通知设置将保持不变,因此如果它曾经被设置为默认声音,则如果您不更改渠道ID,它将继续保持。更多信息在这里


1
我卸载并重新安装了应用,也更改了通道ID。它在模拟器中可以正常工作,但在真实设备上播放默认声音。可能是什么错误? - Radhika Gokani

5
根据文档: “对于 Android 8.0 或更新版本,这个(声音)与指定的渠道相绑定,并且在第一次创建渠道后无法更改。”
因此,要么创建一个单独的渠道,要么卸载应用程序以删除通知渠道并重新安装它。

你能分享链接吗? - 3nomis
@3nomis https://pub.dev/packages/flutter_local_notifications#custom-notification-icons-and-sounds - Promlert Lovichit
那么删除该频道,然后再创建它呢? - Sos.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接