bevy_kira_audio 0.5.1

Bevy plugin for dynamic audio
Documentation

Bevy Kira audio

Crates.io docs license Crates.io

This bevy plugin is intended to try integrating Kira into Bevy. The goal is to replace or update bevy_audio, if Kira turns out to be a good approach. Currently, this plugin can play ogg, mp3, flac, and wav formats and supports web builds for everything except mp3. It also supports streaming of generated audio.

You can check out the examples directory in this repository for a display of this plugin's functionality.

Usage

To initialize the corresponding AssetLoaders, use at least one of the features ogg, mp3, wav, or flac. The following example assumes that the feature bevy_kira_audio/ogg is enabled.

use bevy_kira_audio::{AudioChannel, Audio, AudioPlugin};
use bevy::prelude::*;

fn main() {
   let mut app = App::build();
   app
        .add_plugins(DefaultPlugins)
        .add_plugin(AudioPlugin)
        .add_startup_system(start_background_audio.system());
   app.run();
}

fn start_background_audio(asset_server: Res<AssetServer>, audio: Res<Audio>) {
    audio.play_looped(asset_server.load("background_audio.ogg"));
}

Current state

  • play common audio formats
    • ogg
    • mp3
    • wav
    • flac
  • web support
    • The features ogg, flac and wav can be build for WASM and used in web builds. There are some differences between browsers:
      • Chrome requires an interaction with the website to play audio (e.g. a button click). This issue can be resolved with a script in your index.html file (usage example).
      • Firefox: The audio might sound distorted (this could be related to overall performance; see issue #9)
  • pause/resume and stop tracks
  • play a track on repeat
  • control volume
  • control playback rate
  • control pitch (no change in playback rate)
  • control panning
  • get the current status of a track (time elapsed/left)?
  • audio streaming

Compatible Bevy versions

The main branch is up to date with the latest Bevy release. The branch bevy_main tracks the main branch of Bevy.

Compatibility of published bevy_kira_audio versions:

bevy_kira_audio bevy
0.4.0 - 0.5.0 0.5.0
0.3.0 0.4.0

License

This crate is distributed under the terms of the MIT license.

Assets in the examples might be distributed under different terms. See the readme in the examples directory.