#gamedev #music #sound #wav #thin #play #ogg

bin+lib oml-audio

非常基础,且薄抽象的音频处理,适用于游戏

23 个版本

0.8.8-alpha2024 年 3 月 16 日
0.8.6-alpha2023 年 1 月 25 日
0.6.9-alpha2022 年 12 月 12 日
0.6.5-alpha2022 年 4 月 16 日
0.5.1 2022 年 1 月 13 日

311游戏开发 中排名

Download history 5/week @ 2024-05-20 5/week @ 2024-06-03 4/week @ 2024-06-10 1/week @ 2024-06-17 7/week @ 2024-06-24 13/week @ 2024-07-01 7/week @ 2024-07-15 85/week @ 2024-07-29

103 每月下载量
2 个工具箱中使用 (通过 oml-game)

MIT 许可证

3.5MB
1.5K SLoC

oml-audio

正在进行中!API 将会更改,但我们将遵守 semver 规则。具体来说

在 1.0.0 之前

  • 破坏性更改将更改次要版本 (x.y.0)
  • 非破坏性更改将更改补丁级别 (x.y.z)

在 1.0.0 之后

  • 破坏性更改将更改主版本 (x.0.0)
  • 非破坏性更改和新增功能将更改次要版本 (x.y.0)
  • 修复将更改补丁级别 (x.y.z)

0.y.z 可能会更改很多!

为基于 Rust 的游戏提供播放音乐和音频的非常薄的包装。

功能

  • 在 macOS 上播放 .mp3 音乐(具有硬件加速)

  • 在 macOS 上播放 .wav & .caf 音频

  • 在 Windows 上播放 .ogg 音乐

  • 在 Windows 上播放 .wav 音频

  • 在 Linux 上播放 .ogg 音乐

  • 在 Linux 上播放 .wav 音频

未来

  • 支持其他平台(iOS、android 等)

0.8.x 中的破坏性更改

较新版本允许在多个后端中编译并在运行时选择它们。这有一个缺点,那就是破坏性 API 变更 :( Audio::new,或者更确切地说,Audio::create_defaultAudio::create 现在返回一个 Box<dyn AudioBackend>,这可能意味着您需要更改您的存储。AudioBackend 现在也是基于 FileLoader 的泛型。

示例 :WIP

use oml_audio::Audio;
use oml_audio::fileloader::FileLoaderDisk;

pub fn main() {
    let mut fileloader = FileLoaderDisk::new( "./data" ); // 'data' is the base directory for all other files/paths
    fileloader.enable_debug();

    // OLD: let mut audio = Audio::new();
    let mut audio: Box<dyn AudioBackend<FileLoaderDisk>> = Audio::create_default(); // explicit type for verbosity only
    audio.load_sound_bank( &mut fileloader, "test.omsb" );

    audio.play_sound( "SOUND_ID" );

    loop {
        let _timestep = audio.update();

        // update
        // render
        // (maybe) yield/sleep
    }

}

依赖项