| 0.0.3 |  | 
|---|---|
| 0.0.2 |  | 
| 0.0.1 |  | 
#30 in #flac
145KB
 3K  SLoC
大锅
纯Rust编写的,用于流行的音频格式(Flac、Wav、Mp3、Ogg等)解码器的轻量级实现。
功能
计划的功能包括
- 对最流行的音频编解码器的解码和可能编码支持
- 为Web提供WASM API
- 尝试支持 no_std环境
编解码器格式支持路线图
| 格式 | 标志 | 读 | 写 | 
|---|---|---|---|
| AAC | aac | - | - | 
| Flac | flac | 完成 | - | 
| MP3 | mp3 | 进行中 | - | 
| PCM | pcm | - | - | 
| WAV | wav | 完成 | 进行中 | 
| Vorbis | vorbis | - | - | 
用法
将其添加到 Cargo.toml 文件中
[dependencies]
cauldron = "0.0.2"
示例代码
use cauldron::audio::AudioSegment;
use cauldron::codecs::FormatFlag;
let mut audio_segment = match AudioSegment::read("<path-to-audio-file>", FormatFlag::WAV) {
  Ok(f)  => f,
  Err(e) => panic!("Couldn't open example file: {}", e)
};
// display some audio info
println!("{}", audio_segment);
let samples: Vec<i32> = audio_segment.samples().unwrap().map(|r| r.unwrap()).collect();
println!("total samples {}", samples.len());
播放音频的示例可以在 examples/play.rs 中找到。要播放任何音频,只需运行
cargo run --example play <path-to-audio-file>
致谢
贡献
目前项目还处于非常初期的阶段,因此我目前不寻求任何贡献,但如果您发现任何现有实现中的错误或改进,请随时打开问题。
依赖关系
~105KB