[READ-ONLY] Mirror of https://github.com/probablykasper/redlux. AAC decoder for MPEG-4 and AAC files, with rodio support
aac audio decoder mp4 package
0

Configure Feed

Select the types of activity you want to include in your feed.

Add m4a_playback example

Kasper (Feb 1, 2021, 1:08 AM +0100) beeb92ce 4e4a6475

+29 -2
+24
examples/m4a_playback.rs
··· 1 + use redlux::Decoder; 2 + use rodio::{OutputStream, Sink}; 3 + use std::fs::File; 4 + use std::io::BufReader; 5 + 6 + fn main() { 7 + let path = "tests/samples/Simbai & Elke Bay - Energy.m4a"; 8 + let file = File::open(path).expect("Error opening file"); 9 + 10 + let metadata = file.metadata().expect("Error getting file metadata"); 11 + let size = metadata.len(); 12 + let buf = BufReader::new(file); 13 + 14 + let decoder = Decoder::new(buf, size).expect("Error creating M4aDecoder"); 15 + 16 + let output_stream = OutputStream::try_default(); 17 + let (_stream, handle) = output_stream.expect("Error creating output stream"); 18 + let sink = Sink::try_new(&handle).expect("Error creating sink"); 19 + 20 + sink.append(decoder); 21 + sink.play(); 22 + sink.set_volume(0.5); 23 + sink.sleep_until_end(); 24 + }
+5 -2
tests/test.rs
··· 2 2 use rodio::{OutputStream, Sink}; 3 3 use std::fs::File; 4 4 use std::io::BufReader; 5 + use std::thread; 6 + use std::time::Duration; 5 7 6 8 #[test] 7 9 fn play_m4a() { ··· 20 22 21 23 sink.append(decoder); 22 24 sink.play(); 23 - sink.set_volume(0.5); 24 - sink.sleep_until_end(); 25 + // play audio for 200ms at 0.0 volume 26 + sink.set_volume(0.0); 27 + thread::sleep(Duration::from_millis(200)); 25 28 }