2 个版本
0.1.1 | 2020 年 12 月 19 日 |
---|---|
0.1.0 | 2020 年 8 月 30 日 |
#165 in 多媒体
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
的高级包
- minimp3(使用 minimp3-sys)
- rmp3(使用自己的绑定)
当然,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