Buscar categorias, pacotes e repositórios

Detalhes do pacotev2.3.2

gallery_saver

Salva imagens e vídeos de rede ou arquivo temporário para armazenamento externo. Tanto imagens quanto vídeos serão visíveis na Galeria do Android e na Fotos do iOS.

AndroidiOS
Downloads em 30 dias
3,7 mil
Curtidas
489
Pontos Pub
130

Instalar pacote

flutter pub add gallery_saver

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Gallery Saver é um pacote Flutter que permite salvar imagens e vídeos de URLs de rede ou arquivos temporários para o armazenamento externo do dispositivo. Os mídias salvos ficam visíveis na galeria nativa do Android e no aplicativo Fotos do iOS. Simplifica o processo de persistência de conteúdo multimídia localmente, garantindo compatibilidade com bibliotecas de fotos de nível de sistema. Ideal para aplicativos que precisam permitir que os usuários salvem conteúdo compartilhado ou baixado diretamente na coleção de mídia do dispositivo.

Casos de uso

  • Salvando imagens baixadas de URLs
  • Preservando mídia gerada pelo usuário
  • Compartilhando conteúdo para a galeria do dispositivo
  • Integração com visualizadores de imagem/vídeo
  • Habilitar acesso offline a mídia
  • Apoiar o compartilhamento em mídias sociais

Principais recursos

  • Salva imagens e vídeos
  • Funciona no Android e no iOS
  • Visível na galeria/fotos nativas
  • Suporta fontes de rede e arquivos temporários
  • API simples para salvar mídia
  • Mantém os metadados de mídia

Indicado para

  • aplicativos de compartilhamento de mídia
  • aplicativos de visualização de fotos
  • Baixadores de conteúdo
  • Integrações de mídia social
  • Aplicativos que exigem acesso a mídia off-line
  • plataformas de conteúdo gerado por usuários

Considerações

  • Requer permissões apropriadas no Android
  • Pode ser necessário solicitar permissões em tempo de execução
  • Os limites de tamanho de arquivo dependem do armazenamento do dispositivo
  • O iOS exige uma descrição apropriada de privacidade no Info.plist
  • Não adequado para processamento em larga escala de mídia
  • Controle limitado sobre a organização do álbum

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Gallery Saver for Flutter

Saves images and videos from network or temporary file to external storage. Both images and videos will be visible in Android Gallery and iOS Photos.

NOTE: If you want to save network image or video link, it has to contain 'http/https' prefix.

Installation

First, add gallery_saver as a dependency in your pubspec.yaml file.

iOS

Add the following keys to your Info.plist file, located in <project root>/ios/Runner/Info.plist:

  • NSPhotoLibraryUsageDescription - describe why your app needs permission for the photo library. This is called Privacy - Photo Library Usage Description in the visual editor.
Android
  • android.permission.WRITE_EXTERNAL_STORAGE - Permission for usage of external storage
Example
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:gallery_saver/gallery_saver.dart';
import 'package:image_picker/image_picker.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String firstButtonText = 'Take photo';
  String secondButtonText = 'Record video';
  double textSize = 20;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      body: Container(
        color: Colors.white,
        child: Column(
          children: <Widget>[
            Flexible(
              flex: 1,
              child: Container(
                child: SizedBox.expand(
                  child: RaisedButton(
                    color: Colors.blue,
                    onPressed: _takePhoto,
                    child: Text(firstButtonText,
                        style:
                            TextStyle(fontSize: textSize, color: Colors.white)),
                  ),
                ),
              ),
            ),
            Flexible(
              child: Container(
                  child: SizedBox.expand(
                child: RaisedButton(
                  color: Colors.white,
                  onPressed: _recordVideo,
                  child: Text(secondButtonText,
                      style: TextStyle(
                          fontSize: textSize, color: Colors.blueGrey)),
                ),
              )),
              flex: 1,
            )
          ],
        ),
      ),
    ));
  }

  void _takePhoto() async {
    ImagePicker.pickImage(source: ImageSource.camera)
        .then((File recordedImage) {
      if (recordedImage != null && recordedImage.path != null) {
        setState(() {
          firstButtonText = 'saving in progress...';
        });
        GallerySaver.saveImage(recordedImage.path).then((String path) {
          setState(() {
            firstButtonText = 'image saved!';
          });
        });
      }
    });
  }

  void _recordVideo() async {
    ImagePicker.pickVideo(source: ImageSource.camera)
        .then((File recordedVideo) {
      if (recordedVideo != null && recordedVideo.path != null) {
        setState(() {
          secondButtonText = 'saving in progress...';
        });
        GallerySaver.saveVideo(recordedVideo.path).then((String path) {
          setState(() {
            secondButtonText = 'video saved!';
          });
        });
      }
    });
  }
  void _saveNetworkVideo() async {
    String path =
        'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4';
    GallerySaver.saveVideo(path).then((bool success) {
      setState(() {
        print('Video is saved');
      });
    });
  }

  void _saveNetworkImage() async {
    String path =
        'https://image.shutterstock.com/image-photo/montreal-canada-july-11-2019-600w-1450023539.jpg';
    GallerySaver.saveImage(path).then((bool success) {
      setState(() {
        print('Image is saved');
      });
    });
  }
}

Categorias

Dependências

Lista de dependências 3 itens

Repositório-fonte

Projetos que usam este pacote