4个版本 (2个重大变更)
0.3.0 | 2022年1月10日 |
---|---|
0.2.0 | 2021年10月22日 |
0.1.1 | 2019年5月15日 |
0.1.0 | 2019年5月15日 |
#248 in 压缩
67KB
1K SLoC
ALAC编码器,适用于Rust
Rust版本的Apple开源ALAC库。
安装
该crate与Cargo兼容,可在crates.io上找到。
使用
use alac_encoder::{AlacEncoder, FormatDescription};
// Specify the input format as signed 16-bit raw PCM, 44100 Hz & 2 channels
let input_format = FormatDescription::pcm::<i16>(44100.0, 2);
// Specify the output format as 44100 Hz ALAC with a frame size of 4096 & 2 channels
let output_format = FormatDescription::alac(44100.0, 4096, 2);
// Initialize the encoder
let mut encoder = AlacEncoder::new(&output_format);
// Allocate a buffer for the encoder to write chunks to.
let mut output = vec![0u8; output_format.max_packet_size()];
// Get a hold of the source data, e.g. from a file
let pcm = fs::read("foobar.pcm").unwrap();
// Iterate over chunks from the input
for chunk in pcm.chunks(frame_size as usize * channels as usize * 2) {
// Feed the current chunk to the encoder
let size = encoder.encode(&input_format, &chunk, &mut output);
// Here you can do whatever you want with the result:
Vec::from(&output[0..size]);
}
许可
许可协议为以下之一:
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可协议定义的,您有意提交的任何贡献,包括在本作品中包含的贡献,都应双重许可,如上所述,无需任何额外条款或条件。
依赖项
~87KB