5个不稳定版本
0.3.0 | 2023年8月19日 |
---|---|
0.2.2 | 2023年8月4日 |
0.2.0 | 2023年7月12日 |
0.1.0 | 2023年7月9日 |
0.0.0 |
|
#403 在 音频
每月 63 次下载
3.5MB
22K SLoC
fsbex
fsbex
是从FMOD音库中提取音频的库。目前仅支持FSB版本5。
示例
解析音库,然后将流写入文件
use fsbex::{Bank, AudioFormat};
use std::{
error::Error,
io::{BufReader, BufWriter},
fs::File,
};
fn main() -> Result<(), Box<dyn Error>> {
// open file for reading sound bank
let file = BufReader::new(File::open("example.fsb")?);
let bank = Bank::new(file)?;
// report number of streams contained within the sound bank
println!("{} streams within this sound bank", bank.num_streams());
// check stream audio format
if bank.format() != AudioFormat::Vorbis {
return Err("expected Vorbis format".into());
}
// iterate over streams
for (index, stream) in bank.into_iter().enumerate() {
// check stream name
let file_name = if let Some(name) = stream.name() {
format!("{name}.ogg")
} else {
format!("stream_{index}.ogg")
};
// write stream data to file
let output_file = BufWriter::new(File::create(file_name)?);
stream.write(output_file)?;
}
Ok(())
}
支持的格式
fsbex
支持以下格式的编码流数据
- PCM(8、16、24、32位整数)
- PCM(32位浮点数)
- Vorbis
致谢
fsbex
的实现离不开以下项目
许可证
许可证为以下之一
- Apache许可证第2版 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交的任何有意包含在作品中的贡献,根据Apache-2.0许可证定义,将按照上述方式双重许可,不附加任何额外条款或条件。
依赖项
~4–13MB
~145K SLoC