Kategorien, Pakete und Repositories suchen

Paketdetailsv2.3.2

gallery_saver

Speichert Bilder und Videos aus dem Netzwerk oder temporären Dateien in den externen Speicher. Bilder und Videos sind sowohl in der Android-Galerie als auch in den Fotos von iOS sichtbar.

AndroidiOS
30-Tage-Downloads
3720
Likes
489
Pub-Punkte
130

Paket installieren

flutter pub add gallery_saver

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Gallery Saver ist ein Flutter-Paket, das die Speicherung von Bildern und Videos aus Netzwerk-URLs oder temporären Dateien im externen Speicher des Geräts ermöglicht. Die gespeicherten Medien sind auf Android in der nativen Galerie und auf iOS in der Photos-App sichtbar. Es vereinfacht den Prozess der lokalen Persistenz von Multimedia-Inhalten und gewährleistet Kompatibilität mit systeminternen Fotobibliotheken. Ideal für Apps, die es Benutzern ermöglichen sollen, geteilte oder heruntergeladene Inhalte direkt in die Mediensammlung ihres Geräts zu speichern.

Anwendungsfälle

  • Heruntergeladene Bilder von URLs speichern
  • Benutzererzeugte Medien erhalten
  • Inhalt auf die Gerätegalerie teilen
  • Integration mit Bild-/Videobetrachtern
  • Offline-Zugriff auf Medien aktivieren
  • Unterstützung der sozialen Medienfreigabe

Hauptmerkmale

  • Speichert sowohl Bilder als auch Videos
  • Funktioniert auf Android und iOS
  • In der nativen Galerie/Fotos sichtbar
  • Unterstützt Netzwerk- und temporäre Dateiquellen
  • Einfache API zum Speichern von Medien
  • Behält Medienmetadaten bei

Geeignet für

  • Medienfreigabeanwendungen
  • Foto-Betrachter-Anwendungen
  • Inhalts-Downloader
  • Soziale Medien-Integrationen
  • Apps, die Offline-Medienzugriff erfordern
  • Plattformen für nutzergenerierte Inhalte

Hinweise

  • Erforderliche Berechtigungen auf Android
  • Laufzeitberechtigungsanfragen können erforderlich sein
  • Die Dateigrößenbegrenzungen hängen vom Gerätespeicher ab
  • iOS erfordert eine angemessene Datenschreibbeschreibung in der Info.plist
  • Nicht geeignet für großflächige Medienverarbeitung
  • Eingeschränkte Steuerung der Albumorganisation

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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');
      });
    });
  }
}

Kategorien

Abhängigkeiten

Abhängigkeiten 3 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden