4个版本
0.1.3 | 2020年9月16日 |
---|---|
0.1.2 | 2020年3月27日 |
0.1.1 | 2020年3月26日 |
0.1.0 | 2020年3月26日 |
在多媒体类别中排名412
24KB
536 代码行
ffmpeg-decoder
解码音频文件并将样本格式转换为16位有符号整数。可以作为播放源与rodio一起使用。
Rodio源
Decoder
表示rodio的Source
特质,以及Iterator
。启用特性标志rodio_source
以包含它。然后可以将解码器作为Rodio的源使用,从而能够解码ffmpeg支持的所有内容。
使用CLI进行测试
将输入文件转换为16位有符号整数,并与其原始文件一起保存为.raw
cargo run --release -- convert path/to/test.mp3
使用rodio播放
cargo run --release -- play path/to/test.flac
lib.rs
:
使用ffmpeg绑定解码音频文件
通过提供音频文件的路径来创建一个Decoder
。此Decoder
表示Iterator
,其中每次迭代返回一个单个i16
有符号16位样本。还实现了rodio的Source
特质,其中Decoder
可以作为播放的接收源。
特性标志
rodio_source
以启用rodio的Source
特质
作为Rodio源的示例
use rodio::Sink;
use std::path::PathBuf;
fn play_file(input: PathBuf) -> Result<(), Error> {
let decoder = ffmpeg_decoder::Decoder::open(&input)?;
let device = rodio::default_output_device().unwrap();
let sink = Sink::new(&device);
sink.append(decoder);
sink.play();
sink.sleep_until_end();
Ok(())
}
依赖项
~0.5–4MB
~70K SLoC