local_audio_scan

An Android-only Flutter package for scanning local audio files with album art extraction.

Installation

Add local_audio_scan to your pubspec.yaml:

dependencies:
  local_audio_scan: ^0.0.1 # Replace with the latest version

Then run flutter pub get.

Permissions Setup

This plugin requires permissions to read audio files from the device's storage.

Android

Add the following permissions to your android/app/src/main/AndroidManifest.xml file:

For Android 13 (API 33) and above:

<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />

For older versions (below Android 13):

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Basic Usage

Here's a quick example of how to use the plugin:

import 'package:local_audio_scan/local_audio_scan.dart';

// First, request permissions
bool hasPermission = await LocalAudioScanner().requestPermission();

if (hasPermission) {
  // Scan for audio tracks
  List<AudioTrack> tracks = await LocalAudioScanner().scanTracks();

  for (var track in tracks) {
    print('Title: ${track.title}, Artist: ${track.artist}');
  }
}

Example Output

An AudioTrack object contains the following information:

AudioTrack({
  id: '123',
  title: 'Cool Song',
  artist: 'Awesome Artist',
  album: 'Greatest Hits',
  duration: 240000, // in milliseconds
  filePath: '/storage/emulated/0/Music/cool_song.mp3',
  mimeType: 'audio/mpeg',
  size: 5120000, // in bytes
  dateAdded: 2023-10-27 10:00:00.000Z,
  artwork: // Uint8List data for album art
});

Note

This plugin only supports Android. Calling its methods on iOS will result in a MissingPluginException.