#pcm #sound

miniaudio

与miniaudio C库的绑定

11个版本 (7个破坏性版本)

0.10.0 2020年7月23日
0.8.1 2020年7月21日

#23 in #pcm

Download history 14/week @ 2024-04-05 8/week @ 2024-04-12 12/week @ 2024-04-19 11/week @ 2024-04-26 11/week @ 2024-05-03 12/week @ 2024-05-10 12/week @ 2024-05-17 11/week @ 2024-05-24 143/week @ 2024-05-31 10/week @ 2024-06-07 12/week @ 2024-06-14 10/week @ 2024-06-21 3/week @ 2024-06-28 61/week @ 2024-07-05 5/week @ 2024-07-12 5/week @ 2024-07-19

每月75次 下载
2 crates 中使用

MIT 许可证

3MB
58K SLoC

C 52K SLoC // 0.1% comments Rust 5.5K SLoC // 0.0% comments

Mini Audio Rust 绑定

Build Status crates.io docs.rs

https://github.com/dr-soft/miniaudio 绑定

** 该crate目前缺少文档,但API与miniaudio C库的API非常接近。可以在C库的主头文件中找到。**

构建

如果关闭了 bindgen 功能
那么你不需要做任何特殊操作,绑定应该 正常工作。如果不行,请打开一个问题。

如果开启了 bindgen 功能
需要安装LLVM以生成绑定,但除此之外,一切应该 正常工作。如果不行,请在这里打开一个问题。

示例用法

更多示例,请查看 示例目录

//! Enumerating Devices

use miniaudio::Context;

pub fn main() {
    let context = Context::new(&[], None).expect("failed to create context");

    context
        .with_devices(|playback_devices, capture_devices| {
            println!("Playback Devices:");
            for (idx, device) in playback_devices.iter().enumerate() {
                println!("\t{}: {}", idx, device.name());
            }

            println!("Capture Devices:");
            for (idx, device) in capture_devices.iter().enumerate() {
                println!("\t{}: {}", idx, device.name());
            }
        })
        .expect("failed to get devices");
}

依赖关系