music_stream/
music-stream.rs1use {
2 sfml::{
3 audio::{Music, SoundStatus},
4 system::{InputStream, Time, sleep},
5 },
6 std::{error::Error, fs::File, io::Write},
7};
8
9include!("../example_common.rs");
10
11fn main() -> Result<(), Box<dyn Error>> {
12 example_ensure_right_working_dir();
13
14 let mut file = File::open("orchestral.ogg")?;
15 let mut stream = InputStream::new(&mut file);
16 let mut music = Music::from_stream(&mut stream)?;
17
18 println!("orchestral.ogg :");
20 println!(" {} seconds", music.duration().as_seconds());
21 println!(" {} samples / sec", music.sample_rate());
22 println!(" {} channels", music.channel_count());
23
24 music.play();
25
26 while music.status() == SoundStatus::PLAYING {
27 sleep(Time::milliseconds(100));
29 print!(
31 "\rPlaying... {:.2} sec",
32 music.playing_offset().as_seconds()
33 );
34 let _ = std::io::stdout().flush();
35 }
36 println!();
37 Ok(())
38}