#mp3 #minimp3 #bindings #encoding #f32 #minimp3-ex #float-output

sys minimp3_ex-sys

对 minimp3_ex 库的原始 FFI 绑定

2 个版本

0.1.1 2020 年 12 月 19 日
0.1.0 2020 年 8 月 30 日

#165 in 多媒体

CC0 许可

43KB
306

Rust FFI 绑定到 minimp3_ex

此包为读取 MP3 音频文件提供了对 minimp3_ex 库的原始 FFI 绑定。

遵循 *--sys 包约定,minimp3_ex-sys 包不定义对本地 minimp3_ex 库函数的更高层次的抽象。

minimp3 项目 (https://github.com/lieff/minimp3) 提供了两个仅包含头文件的库

  • minimp3.h 只包含两个函数 mp3dec_init()mp3dec_decode_frame()(以及必要的类型定义)。
  • minimp3_ex.h(包含 minimp3.h)稍微少一些“迷你”,包含更多函数,包括打开文件、定位、使用缓冲区、使用回调函数等。

此包为这两个头文件中的所有函数提供了绑定。

如果您只需要 minimp3.h 的功能,您也可以使用 minimp3-sys 包。

还有一些基于 minimp3.h 的高级包

当然,https://crates.io/ 为 Rust 提供了大量的 MP3 相关库。

用法

将此内容添加到您的 Cargo.toml

[dependencies]
minimp3_ex-sys = "0.1"

功能

功能 float-output 将输出数据类型(mp3d_sample_t)从 i16 更改为 f32

警告:该功能与典型的Cargo功能表现不同,因为它不是可累加的。如果在依赖树中出现多个minimp3_ex-sys实例,并且其中至少有一个实例启用了float-output功能,那么它将对所有实例启用(可能导致编译器错误)。希望在实际应用中不会发生这种情况。

如果启用了float-output功能,则仅提供函数mp3dec_f32_to_s16()

_w结尾的函数仅在Windows上可用。

构建minimp3_ex

构建此crate时,将自动构建minimp3_ex库,使用cc crate。

自动生成Rust绑定

Rust绑定已经使用bindgen(使用bindgen/run-bindgen.sh脚本来生成)并包含在此crate中(请参阅src/bindings.rs)。

贡献

如果您想报告问题或建议改进,请访问https://github.com/mgeier/minimp3_ex-sys。贡献始终欢迎!

依赖项

~225KB