6个版本

0.2.0 2024年6月14日
0.1.5 2024年3月17日
0.1.4 2023年8月28日
0.1.2 2023年5月12日
0.1.0 2022年12月10日

音频 分类中排名80

Download history • Rust 包仓库 163/week @ 2024-05-04 • Rust 包仓库 223/week @ 2024-05-11 • Rust 包仓库 159/week @ 2024-05-18 • Rust 包仓库 346/week @ 2024-05-25 • Rust 包仓库 201/week @ 2024-06-01 • Rust 包仓库 440/week @ 2024-06-08 • Rust 包仓库 438/week @ 2024-06-15 • Rust 包仓库 223/week @ 2024-06-22 • Rust 包仓库 188/week @ 2024-06-29 • Rust 包仓库 247/week @ 2024-07-06 • Rust 包仓库 384/week @ 2024-07-13 • Rust 包仓库 530/week @ 2024-07-20 • Rust 包仓库 364/week @ 2024-07-27 • Rust 包仓库 337/week @ 2024-08-03 • Rust 包仓库 421/week @ 2024-08-10 • Rust 包仓库 318/week @ 2024-08-17 • Rust 包仓库

每月下载1,470
3 个Crates中使用

LGPL-3.0

33KB
563

mp3lame-encoder

Rust Crates.io Documentation

mp3lame-sys的高级包装器

示例

use mp3lame_encoder::{Builder, Id3Tag, DualPcm, FlushNoGap};

let mut mp3_encoder = Builder::new().expect("Create LAME builder");
mp3_encoder.set_num_channels(2).expect("set channels");
mp3_encoder.set_sample_rate(44_100).expect("set sample rate");
mp3_encoder.set_brate(mp3lame_encoder::Bitrate::Kbps192).expect("set brate");
mp3_encoder.set_quality(mp3lame_encoder::Quality::Best).expect("set quality");
mp3_encoder.set_id3_tag(Id3Tag {
    title: b"My title",
    artist: &[],
    album: b"My album",
    year: b"Current year",
    comment: b"Just my comment",
});
let mut mp3_encoder = mp3_encoder.build().expect("To initialize LAME encoder");

//use actual PCM data
let input = DualPcm {
    left: &[0u16, 0],
    right: &[0u16, 0],
};

let mut mp3_out_buffer = Vec::new();
mp3_out_buffer.reserve(mp3lame_encoder::max_required_buffer_size(input.left.len()));
let encoded_size = mp3_encoder.encode(input, mp3_out_buffer.spare_capacity_mut()).expect("To encode");
unsafe {
    mp3_out_buffer.set_len(mp3_out_buffer.len().wrapping_add(encoded_size));
}

let encoded_size = mp3_encoder.flush::<FlushNoGap>(mp3_out_buffer.spare_capacity_mut()).expect("to flush");
unsafe {
    mp3_out_buffer.set_len(mp3_out_buffer.len().wrapping_add(encoded_size));
}
//At this point your mp3_out_buffer should have full MP3 data, ready to be written on file system or whatever

许可协议

LAME库在LGPL许可证下。因此,此crate也采用相同的糟糕许可证

依赖项

~3MB
~67K SLoC