1个不稳定版本
0.1.1 | 2019年5月13日 |
---|---|
0.1.0 |
|
#804 在 音频
68KB
1K SLoC
rportaudio
为Rust提供的PortAudio绑定
示例
fn demo() -> rportaudio::rpa_error::PaResult {
let stream = rportaudio::stream::Stream::open_default(
0, // input channels
1, // output channels
44100.0, // sample rate
rportaudio::stream::FRAMES_PER_BUFFER_UNSPECIFIED,
None, // no callback
)?;
stream.start()?;
let mut phase = 0.0f32;
let mut buffer = Vec::with_capacity(44100);
for _i in (0..44100) {
// Small amplitude such that the test does not produce sound
buffer.push(phase * 0.001);
phase += 0.03;
if phase > 1.0 { phase -= 2.0; }
}
stream.write(&buffer)?;
Ok(())
}
fn main() {
rportaudio::initialize().unwrap();
println!("{:?}", demo());
rportaudio::terminate().unwrap();
}
其他
rportaudio crate会自动编译或查找系统portaudio库,如果不希望这样做,可以设置一个PA_LINK=false
环境变量以取消此操作
依赖项
~140–415KB