Flutter
Proyecto: Reproductor Multimedia
Este documento incluye comentarios explicativos en cada sección para facilitar el
aprendizaje. Cada grupo debe presentar una propuesta nueva e innovadora.
1. [Link] (equivalente a MainActivity)
import 'package:flutter/[Link]'; // Importa la librería
principal de Flutter
void main() {
runApp(MyApp()); // Punto de entrada de la aplicación
}
class MyApp extends StatelessWidget { // Widget raíz de la aplicación
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Media Player', // Título de la aplicación
home: MainScreen(), // Pantalla inicial
);
}
}
class MainScreen extends StatelessWidget { // Pantalla principal
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Inicio"), // Título de la barra superior
),
body: Center(
child: Column(
mainAxisAlignment: [Link], // Centra los
elementos
children: [
// Botón para abrir el reproductor
ElevatedButton(
child: Text("Ir al reproductor"),
onPressed: () {
[Link](
context,
MaterialPageRoute(builder: (context) =>
PlayerScreen()),
); // Navega al reproductor
},
),
SizedBox(height: 20), // Espacio entre botones
// Botón para abrir biblioteca
ElevatedButton(
child: Text("Ir a biblioteca"),
onPressed: () {
[Link](
context,
MaterialPageRoute(builder: (context) =>
LibraryScreen()),
); // Navega a biblioteca
},
),
],
),
),
);
}
}
2. player_screen.dart (equivalente a PlayerActivity)
import 'package:flutter/[Link]';
import 'package:audioplayers/[Link]'; // Librería para
reproducir audio
class PlayerScreen extends StatefulWidget { // Stateful porque el
estado cambia
@override
_PlayerScreenState createState() => _PlayerScreenState();
}
class _PlayerScreenState extends State<PlayerScreen> {
AudioPlayer player = AudioPlayer(); // Controlador del audio
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Reproductor"),
),
body: Center(
child: Column(
mainAxisAlignment: [Link],
children: [
// Botón Play
ElevatedButton(
child: Text("Play Audio"),
onPressed: () async {
await
[Link](AssetSource('audio/sample_audio.mp3'));
},
),
// Botón Pausa
ElevatedButton(
child: Text("Pause Audio"),
onPressed: () async {
await [Link]();
},
),
// Botón Stop
ElevatedButton(
child: Text("Stop Audio"),
onPressed: () async {
await [Link]();
},
),
],
),
),
);
}
@override
void dispose() {
[Link](); // Libera recursos
[Link]();
}
}
3. library_screen.dart (equivalente a LibraryActivity)
import 'package:flutter/[Link]';
class LibraryScreen extends StatelessWidget {
// Lista simulada de archivos multimedia
final List<String> items = [
"Canción 1",
"Canción 2",
"Video 1"
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Biblioteca"),
),
body: [Link](
itemCount: [Link], // Cantidad de elementos
itemBuilder: (context, index) {
return ListTile(
title: Text(items[index]), // Texto del elemento
onTap: () {
// Acción al seleccionar
[Link](context).showSnackBar(
SnackBar(
content: Text("Seleccionaste: ${items[index]}"),
),
);
},
);
},
),
);
}
}