Olá, Licia! Tudo bem?
Para criar uma notificação com som no Flutter, você pode utilizar a biblioteca flutter_local_notifications
. Com ela, você pode configurar uma notificação com som personalizado e também adicionar a funcionalidade de parar o som ao clicar na notificação.
Primeiro, você precisa adicionar a dependência flutter_local_notifications
no arquivo pubspec.yaml
do seu projeto. Em seguida, importe a biblioteca no arquivo onde você deseja criar a notificação.
Aqui está um exemplo básico de como criar uma notificação com som:
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
void main() async {
WidgetsFlutterBinding.ensureInitialized();
var initializationSettingsAndroid =
AndroidInitializationSettings('@mipmap/ic_launcher');
var initializationSettingsIOS = IOSInitializationSettings();
var initializationSettings = InitializationSettings(
android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Local Notifications'),
),
body: Center(
child: RaisedButton(
child: Text('Enviar Notificação'),
onPressed: () {
_showNotification();
},
),
),
),
);
}
Future<void> _showNotification() async {
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
'channel_id', 'channel_name', 'channel_description',
importance: Importance.Max, priority: Priority.High, sound: RawResourceAndroidNotificationSound('alarm_sound'));
var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(
androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.show(
0, 'Título da Notificação', 'Corpo da Notificação', platformChannelSpecifics,
payload: 'item x');
}
}
Neste exemplo, ao pressionar o botão "Enviar Notificação", será exibida uma notificação com o título "Título da Notificação" e corpo "Corpo da Notificação". Além disso, o som do alarme será reproduzido ao receber a notificação.
Lembre-se de substituir o valor alarm_sound
pelo nome do arquivo de som que você deseja utilizar como alarme. Certifique-se de colocar o arquivo de som na pasta res/raw
do seu projeto.
Espero ter ajudado e bons estudos!