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