Para añadir audio o sonidos en Flutter vamos a utilizar la librería audioplayers.
Primero la instalamos:
flutter pub add audioplayers
Luego, ejecuta flutter pub get
en tu terminal para instalar la dependencia.
Organizar la estructura del proyecto
Si aún no lo has hecho, organiza tu proyecto Flutter de manera que tengas una carpeta para los recursos, como imágenes y sonidos. Por ejemplo:
- my_flutter_app - android - ios - lib - assets - sounds - button_press.mp3 - pubspec.yaml
Importar la biblioteca de audio
En el archivo donde planeas usar el sonido (por ejemplo, main.dart
), importa la biblioteca de audio:
import 'package:flutter/material.dart'; import 'package:audioplayers/audioplayers.dart';
Crear una instancia de AudioPlayer
Dentro de tu clase (puede ser un StatefulWidget), crea una instancia de AudioPlayer
:
class MyApp extends StatelessWidget { final AudioPlayer audioPlayer = AudioPlayer(); // Resto del código de la aplicación }
Configurar archivos en assets
Asegúrate de configurar el archivo pubspec.yaml
para incluir la carpeta de sonidos:
flutter: assets: - assets/sounds/
Agregar sonido al evento del botón
Dentro de tu widget de botón, agrega la reproducción de sonido en el evento onPressed
:
ElevatedButton( onPressed: () { audioPlayer.play(AssetSource('sounds/button_press.mp3')); }, child: Text('Pulsar para sonido'), )
Ejecutar la aplicación
Guarda tus cambios y ejecuta tu aplicación Flutter con flutter run
desde la terminal. Cuando pulses el botón, deberías escuchar el sonido que configuraste.
También puedes crear una clase sonido para ejecutarlo desde todos tus botones:
Paso 1: Crear un archivo de utilidad audio_util.dart
// audio_util.dart import 'package:audioplayers/audioplayers.dart'; class AudioUtil { static final AudioPlayer _audioPlayer = AudioPlayer(); static Future<void> playButtonPressSound() async { await _audioPlayer.play(AssetSource('sounds/button_press.mp3')); } }
Paso 2: Usar la utilidad en tu aplicación
// main.dart import 'package:flutter/material.dart'; import 'audio_util.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Flutter Sound Button'), ), body: Center( child: ElevatedButton( onPressed: () async { await AudioUtil.playButtonPressSound(); }, child: Text('Pulsar para sonido'), ), ), ), ); } }
Ahora, puedes utilizar AudioUtil.playButtonPressSound()
desde cualquier parte de tu aplicación donde importes audio_util.dart
para reproducir el sonido al pulsar un botón.
Aquí viene toda la información completa de la API: https://github.com/bluefireteam/audioplayers/blob/main/getting_started.md
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.