use awedio::{NextSample, Sound}; fn main() -> Result<(), Box> { let Some(file_path) = args() else { eprintln!("usage: FILE_PATH"); std::process::exit(2); }; let mut sound = awedio::sounds::open_file(file_path)?; let mut num_samples = 0; loop { match sound.next_sample() { Ok(NextSample::Sample(_)) => num_samples += 1, Ok(NextSample::Paused) => { println!("Encountered a Pause. Stopping."); break; } Ok(NextSample::Finished) => { break; } Ok(NextSample::MetadataChanged) => { println!( "Encountered MetadataChanged. New sample rate: {}, New channel count: {}", sound.sample_rate(), sound.channel_count() ); } Err(e) => { println!("Encountered error: {:?}", e); break; } } } println!("Read {} samples.", num_samples); Ok(()) } fn args() -> Option { let mut args = std::env::args(); args.next()?; args.next() }