flutter_media_metadata 0.0.3+2 copy "flutter_media_metadata: ^0.0.3+2" to clipboard
flutter_media_metadata: ^0.0.3+2 copied to clipboard

outdated

Flutter plugin for reading metadata of media files. Supports Android & Linux.

example/lib/main.dart

import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';

import 'package:flutter_media_metadata/flutter_media_metadata.dart';

void main() {
  runApp(MyApp());
}

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

class _MyAppState extends State<MyApp> {
  Metadata metadata;
  String mediaFilePath;
  Widget mediaAlbumArt;
  Widget mediaMetadata;

  Future<void> onSelected(String mediaFilePath) async {
    FocusScope.of(context).unfocus();
    var metadataRetriever = new MetadataRetriever();
    await metadataRetriever.setFile(File(mediaFilePath));
    this.metadata = await metadataRetriever.metadata;
    this.setState(() {
      this.mediaAlbumArt = metadataRetriever.albumArt != null
          ? new Image.memory(
              metadataRetriever.albumArt,
              height: 200.0,
              width: 200.0,
            )
          : Container(
              height: 200.0,
              width: 200.0,
              child: Text('No Album Art'),
            );
      this.mediaMetadata = new SingleChildScrollView(
        scrollDirection: Axis.horizontal,
        child: DataTable(
          columns: [
            DataColumn(label: Text('Property')),
            DataColumn(label: Text('Value')),
          ],
          rows: [
            DataRow(
              cells: [
                DataCell(Text('trackName')),
                DataCell(Text('${this.metadata.trackName}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('trackArtistNames')),
                DataCell(Text('${this.metadata.trackArtistNames}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('albumName')),
                DataCell(Text('${this.metadata.albumName}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('albumArtistName')),
                DataCell(Text('${this.metadata.albumArtistName}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('trackNumber')),
                DataCell(Text('${this.metadata.trackNumber}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('albumLength')),
                DataCell(Text('${this.metadata.albumLength}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('year')),
                DataCell(Text('${this.metadata.year}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('genre')),
                DataCell(Text('${this.metadata.genre}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('authorName')),
                DataCell(Text('${this.metadata.authorName}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('writerName')),
                DataCell(Text('${this.metadata.writerName}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('discNumber')),
                DataCell(Text('${this.metadata.discNumber}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('mimeType')),
                DataCell(Text('${this.metadata.mimeType}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('trackDuration')),
                DataCell(Text('${this.metadata.trackDuration}')),
              ],
            ),
            DataRow(
              cells: [
                DataCell(Text('bitrate')),
                DataCell(Text('${this.metadata.bitrate}')),
              ],
            ),
          ],
        ),
      );
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
          appBar: AppBar(
            title: const Text('flutter_media_metadata'),
          ),
          body: ListView(
            padding: EdgeInsets.symmetric(horizontal: 16.0),
            children: [
              TextField(
                onEditingComplete: () => this.onSelected(this.mediaFilePath),
                onChanged: (String value) => this.mediaFilePath = value,
                decoration: InputDecoration(
                  labelText: 'File Location',
                  hintText: 'Enter path to a media file.',
                ),
              ),
              RaisedButton(
                onPressed: () => this.onSelected(this.mediaFilePath),
                child: Text('LOAD FILE'),
              ),
              this.mediaAlbumArt ?? Container(),
              this.mediaMetadata ??
                  Container(
                    height: 200,
                    alignment: Alignment.center,
                    child: Text(
                      'Enter path to a file to get its metadata.\nDo not forget to give storage permissions to the app.',
                      textAlign: TextAlign.center,
                    ),
                  ),
            ],
          )),
    );
  }
}
71
likes
0
points
53
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin for reading metadata of media files. Supports Android & Linux.

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

Dependencies

flutter

More

Packages that depend on flutter_media_metadata