我有一个包含大量 MP3 文件的文件夹,我想创建一个 Rust 程序以随机顺序播放这些文件。(注意:我有两层文件夹。)
我希望我的程序是跨平台的(它必须在 Windows 和 Linux 上运行)并且可移植(它不能依赖于已安装的程序,如 VLC、Windows Media Player 等)。
我用这个库编写了这个程序rodio
:
use std::io::Cursor;
use rodio::{Decoder, OutputStream, source::Source};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let (_stream, stream_handle) = OutputStream::try_default().unwrap();
let sound_data = include_bytes!("song.mp3");
let source = Decoder::new_mp3(Cursor::new(&sound_data[..])).unwrap();
stream_handle.play_raw(source.convert_samples())?;
std::thread::sleep(std::time::Duration::from_secs(240));
Ok(())
}
但该程序只能播放一个文件。
我需要一个HashMap
以文件名为键、以代表文件内容的切片为值的东西。
您可以使用include-dir包。它有点类似于目录
include_bytes
,但适用于目录: