#minimp3 #decoder #decoding #wrapper #optimization #simd #bindings

无需std rmp3

快速且安全的no_std minimp3包装器

5个不稳定版本

0.3.1 2021年2月23日
0.3.0 2021年2月15日
0.2.1 2020年1月21日
0.2.0 2020年1月21日
0.1.0 2020年1月21日

音频分类中排名435

Download history 19/week @ 2024-03-04 29/week @ 2024-03-11 31/week @ 2024-03-18 27/week @ 2024-03-25 53/week @ 2024-04-01 21/week @ 2024-04-08 30/week @ 2024-04-15 24/week @ 2024-04-22 28/week @ 2024-04-29 19/week @ 2024-05-06 29/week @ 2024-05-13 22/week @ 2024-05-20 49/week @ 2024-05-27 23/week @ 2024-06-03 15/week @ 2024-06-10 17/week @ 2024-06-17

每月下载量106
用于 2 crates

CC0许可

31KB
480

Build Status (Travis-CI) Crates.io Documentation

rmp3

针对minimp3的惯用no_std绑定,不进行内存分配。

文档

文档托管在docs.rs上。

使用方法

将以下内容添加到您的Cargo.toml

[dependencies]
rmp3 = "0.3"

... 或者,如果您需要std特定功能

[dependencies]
rmp3 = { features = ["std"], version = "0.3" }

最基础的例子是使用提供的流式迭代器解码文件,如下所示

use rmp3::{Decoder, Frame};

let mp3 = std::fs::read("test.mp3")?;
let mut decoder = Decoder::new(&mp3);
while let Some(frame) = decoder.next() {
    if let Frame::Audio(audio) = frame {
        // process audio frame here!
        imaginary_player.append(
            audio.channels(),
            audio.sample_count(),
            audio.sample_rate(),
            audio.samples(),
        );
    }
}

查看文档以获取更多示例和信息。

特性

  • float:将样本类型更改为单精度浮点数,因此解码器将输出浮点PCM。
    • 这是一个非可加特性,将更改API。 不要在不通知的情况下在库中这样做 (为什么?).
  • mp1-mp2:包含MP1和MP2解码代码。
  • simd (默认):在符合条件的目标上启用手写的SIMD优化。
  • std:添加需要std的功能

依赖

~220KB