Clase de móviles del 28

parent e0ac6390
...@@ -18,4 +18,15 @@ abstract class Conversor { ...@@ -18,4 +18,15 @@ abstract class Conversor {
ReturnCode? returnCode = await session.getReturnCode(); ReturnCode? returnCode = await session.getReturnCode();
return returnCode; return returnCode;
} }
static void getMetadata(Archivo archivo) async {
// ffmpeg -i INPUT -f ffmetadata metadata.ffmeta
String comando = "-i ${archivo.file.path} -f ffmetadata metadata.ffmeta";
// https://www.ffmpeg.org/ffmpeg-formats.html#ffmetadata
FFmpegSession session = await FFmpegKit.execute(comando);
// session.getOutput()
}
} }
\ No newline at end of file
import 'dart:io'; import 'dart:io';
import 'package:ffmpeg_kit_flutter/return_code.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:prueba_multimedia/modelo/modelo.dart'; import 'package:prueba_multimedia/modelo/modelo.dart';
...@@ -7,7 +6,9 @@ import 'package:prueba_multimedia/modelo/modelo.dart'; ...@@ -7,7 +6,9 @@ import 'package:prueba_multimedia/modelo/modelo.dart';
class ActionButton extends StatelessWidget { class ActionButton extends StatelessWidget {
final ActionButtonTypes tipoBoton; final ActionButtonTypes tipoBoton;
final ListaSeleccionables manager; final ListaSeleccionables manager;
const ActionButton({super.key, required this.tipoBoton, required this.manager}); final BuildContext context;
const ActionButton({super.key, required this.tipoBoton,
required this.manager, required this.context});
void Function() getCallback() { void Function() getCallback() {
return switch(tipoBoton) { return switch(tipoBoton) {
...@@ -25,9 +26,11 @@ class ActionButton extends StatelessWidget { ...@@ -25,9 +26,11 @@ class ActionButton extends StatelessWidget {
return Directionality( return Directionality(
textDirection: TextDirection.rtl, textDirection: TextDirection.rtl,
child: FilledButton.icon( child: FilledButton.icon(
onPressed: getCallback(), onPressed: getCallback(),
label: Text(tipoBoton.label, textScaler: const TextScaler.linear(1.2)), label: Text(
icon: tipoBoton.icon, tipoBoton.label,
textScaler: const TextScaler.linear(1.2)),
icon: tipoBoton.icon,
), ),
); );
} }
...@@ -40,21 +43,30 @@ class ActionButton extends StatelessWidget { ...@@ -40,21 +43,30 @@ class ActionButton extends StatelessWidget {
manager.addArchivo(file); manager.addArchivo(file);
} // Mensaje indicando que se seleccione un archivo } // Mensaje indicando que se seleccione un archivo
else { else {
// // Comprobar que el widget no ha sido destruido por ser asíncrono
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("Selecciona una archivo"))
);
}
} }
} }
void carpetaAction() async { void carpetaAction() async {
String? path = await FilePicker.platform.getDirectoryPath(); FilePicker.platform.getDirectoryPath().then( (path) {
if (path != null) { if (path != null) {
var directory = Directory(path); var directory = Directory(path);
manager.addCarpeta(directory); manager.addCarpeta(directory);
} // Mensaje indicando que se seleccione una carpeta } // Mensaje indicando que se seleccione una carpeta
else { else {
ScaffoldMessenger.of().showSnackBar( // Comprobar que el widget no ha sido destruido por ser asíncrono
if (context.mounted) {
) ScaffoldMessenger.of(context).showSnackBar(
} SnackBar(content: Text("Selecciona una carpeta"))
);
}
}
});
} }
void enlaceAction() { void enlaceAction() {
......
...@@ -72,7 +72,7 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> { ...@@ -72,7 +72,7 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> {
ListaSeleccionables manager) ListaSeleccionables manager)
{ {
return convertirButtonTypes.map((type) { return convertirButtonTypes.map((type) {
return ActionButton(tipoBoton: type, manager: manager); return ActionButton(tipoBoton: type, manager: manager, context: context,);
}).toList(); }).toList();
} }
...@@ -143,7 +143,7 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> { ...@@ -143,7 +143,7 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> {
ListaSeleccionables manager) ListaSeleccionables manager)
{ {
return agregarButtonTypes.map( (type) { return agregarButtonTypes.map( (type) {
return ActionButton(tipoBoton: type, manager: manager); return ActionButton(tipoBoton: type, manager: manager, context: context,);
}).toList(); }).toList();
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment