3个不稳定版本
新版本 0.2.0 | 2024年8月21日 |
---|---|
0.1.1 | 2024年8月14日 |
0.1.0 | 2024年8月14日 |
219 在 音频 中
每月307次下载
6MB
707 行
多通道Rust音频
此库提供易于使用的音频库,用于播放和录制多通道音频。
它受到Python Sounddevice及其易于理解的功能的启发。
此库主要是一个围绕CPAL crate的包装器。它抽象化了流创建,并提供了简单的播放/录制函数。
目前仅支持使用Focusrite音频接口的Linux和Windows。未来计划提供更多支持。
入门
将以下内容添加到您的Cargo.toml文件中
[dependencies]
multichannel_audio = "0.1.0"
如何使用
-
如果您在Windows上,请遵循CPAL文档中的Windows上的ASIO部分的说明来设置ASIO SDK。
-
在程序开始时初始化音频设备一次。
-
准备一个二维音频数组,列数等于您的音频设备上的通道数。例如,如果您在一个立体声2通道设备上播放,则您的数组将是2行x,其中x是要播放的样本数。
-
将指定的时间录制到新的二维数组中。数据形状的原则与播放相同。
示例
以48kHz采样率在6通道音频设备的1通道中播放白噪声
set_host_and_audio_device().unwrap();
let signal = generate_gaussian_white_noise(5.0, 48000, None);
let mut multichannel_signal = vec![vec![0; 5 * 48000]; 6];
multichannel_signal[0] = signal;
let audio_instance = audio_class::AudioInstance::new(48000).unwrap();
audio_instance.play(multichannel_signal).unwrap();
录制5秒
set_host_and_audio_device().unwrap();
let audio_instance = audio_class::AudioInstance::new(48000).unwrap();
let recording = audio_instance.record(5.0).unwrap();
许可
在MIT许可证下授权(LICENSE或https://opensource.org/license/MIT)
依赖关系
~0.7–29MB
~421K SLoC