qoaudio 0.7.0

QOA audio format decoder in Rust
Documentation
use qoaudio::{QoaDecoder, QoaRodioSource};
use rodio::{OutputStream, Sink, Source};
use std::thread::sleep;

fn main() {
    let Some(audio_path) = std::env::args().nth(1) else {
        eprintln!("Usage: play <path to qoa file>");
        return;
    };

    let decoder = QoaDecoder::open(audio_path).expect("open file");
    let audio = QoaRodioSource::new(decoder);

    println!("Decoded header:");
    println!("\tchannels: {}", audio.channels());
    println!("\tsample rate: {}", audio.sample_rate());
    println!("\tDuration: {:?}", audio.total_duration());

    let (_stream, stream_handle) = OutputStream::try_default().unwrap();
    let sink = Sink::try_new(&stream_handle).unwrap();

    println!("Playing...");
    let dur = audio.total_duration().unwrap();
    sink.append(audio);
    sleep(dur);
}