flutter_gapless_loop library

Flutter plugin for true sample-accurate gapless audio looping on iOS.

Primary entry point is LoopAudioPlayer.

Quick Start

import 'package:flutter_gapless_loop/flutter_gapless_loop.dart';

final player = LoopAudioPlayer();
await player.loadFromFile('/absolute/path/to/loop.wav');
await player.play();
// ... later
await player.dispose();

Classes

AmplitudeEvent
Real-time audio amplitude (level) emitted by LoopAudioPlayer.amplitudeStream.
BpmResult
The result of BPM/tempo detection on a loaded audio file.
CompressorSettings
Dynamic-range compressor settings.
CutoffFilterSettings
Settings for a single-pole cutoff (low-pass or high-pass) filter.
EffectsPreset
A snapshot of all active DSP effect settings, for save/restore.
EqSettings
3-band equaliser settings.
InterruptionEvent
An audio interruption event (phone call, Siri, focus loss).
LoopAudioMaster
A static group-bus controller for all live LoopAudioPlayer instances.
LoopAudioPlayer
A player for sample-accurate gapless audio looping on iOS, Android, macOS, and Windows.
LoopPoints
A pair of A-B loop points set by LoopAudioPlayer.saveLoopPointA / LoopAudioPlayer.saveLoopPointB.
LoopSyncGroup
Provides sample-accurate simultaneous control of multiple LoopAudioPlayer instances.
MetronomeMaster
A static group-bus controller for all live MetronomePlayer instances.
MetronomePlayer
A sample-accurate metronome that pre-generates a single-bar PCM buffer and loops it on the native hardware scheduler.
NowPlayingInfo
Metadata for the iOS MPNowPlayingInfoCenter and Android media notification.
RemoteCommandEvent
An event from the remote command center (lock screen, headphones, CarPlay).
RouteChangeEvent
Carries the reason for an audio route change from the native layer.
SilenceRegion
A contiguous region of silence detected in the loaded audio file.
SpectrumData
Real-time FFT spectrum data emitted by LoopAudioPlayer.spectrumStream.

Enums

ExportFormat
Output format for LoopAudioPlayer.exportToFile.
FilterType
Filter type for the cutoff filter.
InterruptionType
Whether an audio interruption began or ended.
PlayerState
Playback state of the LoopAudioPlayer.
RemoteCommand
Commands that can be received from the lock screen, headphones, CarPlay, or Android notification.
ReverbPreset
Built-in reverb room presets.
RouteChangeReason
Describes why an audio route change occurred (e.g. headphones unplugged).