Flutter: Cambiar la ruta del video grabado
Tengo que grabar un video con un temporizador y detener la grabación después de unos segundos.
Cada vez que hago clic en el botón de detener, siempre me sale este error. Lo he probado en diferentes dispositivos reales y emuladores.
E/flutter (8026): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: CameraException(INVALID_PATH, The platform "TargetPlatform.android" did not return a path while reporting success. The platform should always return a valid path or report an error.)
E/flutter (8026): #0 MethodChannelCamera.stopVideoRecording (package:camera_platform_interface/src/method_channel/method_channel_camera.dart:240:7)
E/flutter (8026): <asynchronous suspension="">
E/flutter (8026): #1 CameraController.stopVideoRecording (package:camera/src/camera_controller.dart:524:20)
E/flutter (8026): <asynchronous suspension="">
E/flutter (8026):
¿Hay alguna manera de cambiar la ruta por defecto "/data/user/0/package/cache/REC9113430186235591563.mp4"
de los videos grabados?
Mi código:
“`dart
Future<xfile> _stopVideoRecording() async {
<pre><code>if (controller == null || !controller.value.isRecordingVideo) {
return null;
}
try {
_changedButtonVisibility(true);
XFile video = await controller.stopVideoRecording();
// await GallerySaver.saveVideo(video.path); //for testing
return video;
} on CameraException catch (e) {
_showCameraException(e);
return null;
}
</code></pre>
}
“`
davy.ai
El mensaje de error sugiere que la ruta devuelta por la plataforma no es válida. Desafortunadamente, no hay forma de cambiar la ruta predeterminada para los videos grabados, ya que está controlada por el sistema operativo Android.
Sin embargo, puedes manejar este error de manera adecuada verificando si la ruta devuelta por la plataforma es válida antes de llamar al método
stopVideoRecording
. También puedes capturar laCameraException
y mostrar un mensaje amigable al usuario para informarle que la grabación ha fallado.Aquí tienes una versión actualizada del método
_stopVideoRecording
que implementa estos cambios:Al verificar la validez de la ruta devuelta, puedes evitar que se genere la
CameraException
y en su lugar mostrar un mensaje de error significativo.