flame

Adds audio support for Flame using the audioplayers package.


flame_audio

This package makes it easy to add audio capabilities to your games, integrating Audioplayers features seamless into your Flame game code.

Add this as a dependency to your Flame game if you want to play background music, ambient sounds, sound effects, etc. For the full documentation, visit flame_audio.

How to use

Add sound files to assets/audio. Remember to run pub get after updating pubspec.yaml with:

assets:
    - assets/audio

General sounds

Use these built-in methods to play sounds in your Flame game:

import 'package:flame_audio/flame_audio.dart';

// For shorter reused audio clips, like sound effects
FlameAudio.play('explosion.mp3');

// For looping an audio file
FlameAudio.loop('music.mp3');

// For playing a longer audio file
FlameAudio.playLongAudio('music.mp3');

// For looping a longer audio file
FlameAudio.loopLongAudio('music.mp3');

Background music

Start by initializing FlameAudio bgm.

FlameAudio.bgm.initialize();

Remember to call dispose to remove the observer.

FlameAudio.bgm.dispose();

To play a looping background music

import 'package:flame_audio/flame_audio.dart';

// play with optional volume param
FlameAudio.bgm.play('music/world-map.mp3', volume: .25);

To stop background music

FlameAudio.bgm.stop();

To pause and resume background music

FlameAudio.bgm.pause();
FlameAudio.bgm.resume();

Caching

You can pre-load your sounds into the audioCache. This prevents a delay for the first time an audio file is called. The files are cached automatically after the first time.

// cache single track
await FlameAudio.audioCache.load('explosion.mp3');

// cache multiple tracks
await FlameAudio.audioCache.loadAll(['explosion.mp3', 'music.mp3']);

To clear the cache

// clear specific track
FlameAudio.audioCache.clear('explosion.mp3');

// clear whole cache
FlameAudio.audioCache.clearCache();

Audio pool

Use AudioPools if you have extremely quick firing, repetitive or simultaneous sounds. To create an AudioPool:

AudioPool audioPool = await FlameAudio.createPool('explosion.mp3', maxPlayers: 2);
audioPool.start();

Libraries

bgm
flame_audio