This crate provides utility methods for reading and writing formats such as Microsoft Wave, Audio Video Interleave or Downloadable Sounds.
Reading chunks:
rust
let mut file = File::open("somefile.wav")?;
let (chunk, _len) = riff::read_chunk(&mut file)?;
Writing chunks:
````rust // Some ids to use while creating chunks let smplid: ChunkId = ChunkId { value: [0x73, 0x6D, 0x70, 0x6C] }; let testid: ChunkId = ChunkId { value: [0x74, 0x65, 0x73, 0x74] }; let tst1id: ChunkId = ChunkId { value: [0x74, 0x73, 0x74, 0x31] }; let tst2id: ChunkId = ChunkId { value: [0x74, 0x73, 0x74, 0x32] };
let str1 = "hey this is a test".asbytes().tovec(); let str2 = "hey this is another test".asbytes().tovec(); let str3 = "final test".asbytes().tovec();
let test1 = Chunk::newdata(testid.clone(), str1); let test2 = Chunk::newdata(testid.clone(), str2); let test3 = Chunk::newdata(test_id.clone(), str3);
let tst1 = Chunk::newlist(tst1id, vec![test1, test2]); let tst2 = Chunk::newlist(tst2id, vec![test_3]);
let chunk = Chunk::newriff(smplid, vec![tst1, tst2]);
let mut file = File::create("somefile.riff")?; riff::write_chunk(&mut file, &chunk); ````