Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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();