FlutterSoundPlayer class Null safety

A Player is an object that can playback from various sources.

Using a player is very simple :

  1. Create a new FlutterSoundPlayer

  2. Open it with openAudioSession()

  3. Start your playback with startPlayer().

  4. Use the various verbs (optional):

  5. Stop your player : stopPlayer()

  6. Release your player when you have finished with it : closeAudioSession(). This verb will call stopPlayer() if necessary.

Implemented types


FlutterSoundPlayer({Level logLevel = Level.debug})
Instanciate a new Flutter Sound player. The optional paramater Level logLevel specify the Logger Level you are interested by.


foodSink StreamSink<Food>?
The sink side of the Food Controller [...]
hashCode int
The hash code for this object. [...]
read-only, inherited
isPaused bool
Test the Player State
isPlaying bool
Test the Player State
isStopped bool
Test the Player State
logger Logger
The FlutterSoundPlayerLogger Logger getter
onProgress Stream<PlaybackDisposition>?
The stream side of the Food Controller [...]
playerState PlayerState
The current state of the Player
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited


closeAudioSession() Future<void>
Close an open session. [...]
dispositionStream() Stream<PlaybackDisposition>?
Provides a stream of dispositions which provide updated position and duration as the audio is played. [...]
feedFromStream(Uint8List buffer) Future<void>
Used when you want to play live PCM data synchronously. [...]
getPlayerState() Future<PlayerState>
Query the current state to the Tau Core layer. [...]
getProgress() Future<Map<String, Duration>>
Get the current progress of a playback. [...]
getResourcePath() Future<String?>
Get the resource path. [...]
isDecoderSupported(Codec codec) Future<bool>
Returns true if the specified decoder is supported by flutter_sound on this platform [...]
isOpen() bool
Return true if the Player has been open
log(Level logLevel, String msg) → void
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
nowPlaying(Track track, {Duration? duration, Duration? progress, TonSkip? onSkipForward, TonSkip? onSkipBackward, TonPaused? onPaused, bool? defaultPauseResume}) Future<void>
Set the Lock screen fields without starting a new playback. [...]
openAudioSession({AudioFocus focus = AudioFocus.requestFocusAndKeepOthers, SessionCategory category = SessionCategory.playAndRecord, SessionMode mode = SessionMode.modeDefault, AudioDevice device = AudioDevice.speaker, int audioFlags = outputToSpeaker | allowBlueToothA2DP | allowAirPlay, bool withUI = false}) Future<FlutterSoundPlayer?>
Open the Player. [...]
pausePlayer() Future<void>
Pause the current playback. [...]
resumePlayer() Future<void>
Resume the current playback. [...]
seekToPlayer(Duration duration) Future<void>
To seek to a new location. [...]
setAudioFocus({AudioFocus focus = AudioFocus.requestFocusAndKeepOthers, SessionCategory category = SessionCategory.playback, SessionMode mode = SessionMode.modeDefault, AudioDevice device = AudioDevice.speaker, int audioFlags = outputToSpeaker | allowBlueTooth | allowBlueToothA2DP | allowEarPiece}) Future<void>
Set or unset the Audio Focus. [...]
setLogLevel(Level aLevel) Future<void>
Used if the App wants to dynamically change the Log Level. Seldom used. Most of the time the Log Level is specified during the constructor.
setSpeed(double speed) Future<void>
Change the playback speed [...]
setSubscriptionDuration(Duration duration) Future<void>
Specify the callbacks frenquency, before calling startPlayer. [...]
setUIProgressBar({Duration? duration, Duration? progress}) Future<void>
Used if the App wants to control itself the Progress Bar on the lock screen. [...]
setVolume(double volume) Future<void>
Change the output volume [...]
startPlayer({String? fromURI, Uint8List? fromDataBuffer, Codec codec = Codec.aacADTS, int sampleRate = 16000, int numChannels = 1, TWhenFinished? whenFinished}) Future<Duration?>
Used to play a sound. [...]
startPlayerFromMic({int sampleRate = 44000, int numChannels = 1}) Future<void>
Starts the Microphone and plays what is recorded. [...]
startPlayerFromStream({Codec codec = Codec.pcm16, int numChannels = 1, int sampleRate = 16000}) Future<void>
Used to play something from a Dart stream [...]
startPlayerFromTrack(Track track, {TonSkip? onSkipForward, TonSkip? onSkipBackward, TonPaused? onPaused, TWhenFinished? whenFinished, Duration? progress, Duration? duration, bool? defaultPauseResume, bool removeUIWhenStopped = true}) Future<Duration?>
Play data from a track specification and display controls on the lock screen or an Apple Watch. [...]
stopPlayer() Future<void>
Stop a playback. [...]
toString() String
A string representation of this object. [...]


operator ==(Object other) bool
The equality operator. [...]