Easy Rust API to play audio using OpenAL
Clone or download
Pull request Compare This branch is 26 commits ahead of jhasse:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
res
src
.gitignore
.travis.yml
CHANGELOG.md
Cargo.toml
LICENSE
README.md
appveyor.yml
build.rs

README.md

ears Build Status Build status

A simple library to play sounds and music in Rust.

  • Convenient and easy to understand interface over OpenAL.
  • Supports a wide variety of audio formats via libsndfile.
  • Advanced features like HRTF and spatialization for free.
  • Perfect for game developers.

View documentation

Before you start

You need to install OpenAL and libsndfile on your system.

Linux (Debian and Ubuntu):

sudo apt install libopenal-dev libsndfile1-dev

Linux (Fedora):

sudo dnf install openal-soft-devel libsndfile-devel

Mac:

brew install openal-soft libsndfile

Windows:

Install MSYS2 according to the instructions. Be sure to use the default installation folder (i.e. C:\msys32 or C:\msys64), otherwise compiling won't work. Then, run the following in the MSYS2 shell:

pacman -S mingw-w64-x86_64-libsndfile mingw-w64-x86_64-openal

Usage

Include ears in your Cargo.toml dependencies.

[dependencies]
ears = "0.5.1"

Playing a sound effect while simultaneously streaming music off disk is as simple as it gets.

extern crate ears;
use ears::{Music, Sound, AudioController};

fn main() {
    let mut music = Music::new("your-music.ogg").unwrap();
    music.play();

    let mut sound = Sound::new("your-sound-effect.wav").unwrap();
    sound.play();

    while music.is_playing() || sound.is_playing() {};
}

Running examples

cargo run --example basic
cargo run --example many_sounds
cargo run --example music
cargo run --example record
cargo run --example simple_player
cargo run --example threads
cargo run --example direct_channel