У меня есть приложение Flutter с использованием хранилища Firebase для загрузки видео. Когда видео выбирается из Google Drive с использованием FilePicker, я заметил, что файл, по -видимому, сначала загружается на устройство, прежде чем загружать в хранилище Firebase. Хранение Firebase с использованием uploadtask.snapshotevents. Тем не менее, я не могу отслеживать прогресс начального шага кеширования (загрузка), когда файл передается с Google Drive на временное хранилище устройства. Потому что кажется, что «ничего не происходит», в то время как файл кэшируется локально.
Как отслеживать ход процесса кэширования при загрузке видео с Google Диска на устройство? Есть ли способ отслеживать этап кэширования перед передачей файла в Firebase Storage для загрузки?
Я читал, что плагин FilePicker использует URI content:// для Google Диска. файлы, которые могут включать ContentResolver Android для локального кэширования файла. Если да, то как я могу отслеживать ход чтения файла с помощью ContentResolver или любого подобного механизма во Flutter?
Любые идеи и предложения приветствуются!
У меня есть приложение Flutter с использованием хранилища Firebase для загрузки видео. Когда видео выбирается из Google Drive с использованием FilePicker, я заметил, что файл, по -видимому, сначала загружается на устройство, прежде чем загружать в хранилище Firebase. Хранение Firebase с использованием uploadtask.snapshotevents. Тем не менее, я не могу отслеживать прогресс начального шага кеширования (загрузка), когда файл передается с Google Drive на временное хранилище устройства. Потому что кажется, что «ничего не происходит», в то время как файл кэшируется локально.[code]Align( alignment: const AlignmentDirectional(0.0, -1.0), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ Align( alignment: const AlignmentDirectional(0.0, 0.0), child: Column( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.end, children: [ Align( alignment: const AlignmentDirectional(0.0, -1.0), child: Text( FFLocalizations.of(context).getText( 'ayvkafvm' /* Upload Video */, ), textAlign: TextAlign.center, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: FlutterFlowTheme.of(context) .bodyMediumFamily, letterSpacing: 0.0, useGoogleFonts: GoogleFonts.asMap() .containsKey( FlutterFlowTheme.of(context) .bodyMediumFamily), ), ), ), Padding( padding: const EdgeInsetsDirectional.fromSTEB( 0.0, 0.0, 17.0, 0.0), child: FlutterFlowIconButton( borderColor: Colors.transparent, borderRadius: 30.0, borderWidth: 1.0, buttonSize: 40.0, icon: Icon( Icons.video_call, color: FlutterFlowTheme.of(context).primary, size: 24.0, ), onPressed: () async { FilePickerResult? result = await FilePicker.platform.pickFiles( type: FileType.video, allowMultiple: false, );
// Wait for the upload to complete await uploadTask;
// Get the download URL String downloadURL = await storageRef.getDownloadURL();
// Close the progress dialog Navigator.of(context).pop();
// Update the model with the new URL setState(() { _model.uploadedFileUrl1 = downloadURL; });
// Clear cache after successful upload await DefaultCacheManager() .emptyCache();
ScaffoldMessenger.of(context) .showSnackBar( const SnackBar( content: Text( 'Video uploaded successfully')), ); } catch (e) { print('Error uploading video: $e'); ScaffoldMessenger.of(context) .showSnackBar( const SnackBar( content: Text( 'Failed to upload video')), ); } } }, ), ), ], ), ), ], ), ), [/code] Как отслеживать ход процесса кэширования при загрузке видео с Google Диска на устройство? Есть ли способ отслеживать этап кэширования перед передачей файла в Firebase Storage для загрузки? Я читал, что плагин FilePicker использует URI content:// для Google Диска. файлы, которые могут включать ContentResolver Android для локального кэширования файла. Если да, то как я могу отслеживать ход чтения файла с помощью ContentResolver или любого подобного механизма во Flutter? Любые идеи и предложения приветствуются!