pub fn write_wav_to_file_path(
file_path: &Path,
header: WavHeader,
) -> Result<OpenWavWriter>Expand description
Starts writing a wav to a Path. Returns an OpenWavWriter struct that is used to write the contents of the wav
§Arguments
- ‘file_path’ - The path to where the wav will be written
- ‘header’ - The header information in the wav. This specifies things like sampling rate, sample bit depth, ect
§Examples
use std::path::Path;
use wave_stream::samples_by_channel::SamplesByChannel;
use wave_stream::wave_header::{Channels, SampleFormat, WavHeader};
use wave_stream::{read_wav_from_file_path, write_wav_to_file_path};
let header = WavHeader {
sample_format: SampleFormat::Float,
channels: Channels {
front_left: true,
front_right: true,
front_center: false,
low_frequency: false,
back_left: false,
back_right: false,
front_left_of_center: false,
front_right_of_center: false,
back_center: false,
side_left: false,
side_right: false,
top_center: false,
top_front_left: false,
top_front_center: false,
top_front_right: false,
top_back_left: false,
top_back_center: false,
top_back_right: false,
},
sample_rate: 96000,
};
let mut open_wav = write_wav_to_file_path(Path::new("some.wav"), header).unwrap();
let mut writer = open_wav.get_random_access_f32_writer().unwrap();
// Sample 0
writer.write_samples(0, SamplesByChannel {
front_left: Some(0.0),
front_right: Some(0.0),
front_center: None,
low_frequency: None,
back_left: None,
back_right: None,
front_left_of_center: None,
front_right_of_center: None,
back_center: None,
side_left: None,
side_right: None,
top_center: None,
top_front_left: None,
top_front_center: None,
top_front_right: None,
top_back_left: None,
top_back_center: None,
top_back_right: None,
}).unwrap();
// Sample 1
writer.write_samples(1, SamplesByChannel {
front_left: Some(0.0),
front_right: Some(0.0),
front_center: None,
low_frequency: None,
back_left: None,
back_right: None,
front_left_of_center: None,
front_right_of_center: None,
back_center: None,
side_left: None,
side_right: None,
top_center: None,
top_front_left: None,
top_front_center: None,
top_front_right: None,
top_back_left: None,
top_back_center: None,
top_back_right: None,
}).unwrap();
// Sample 2
writer.write_samples(2, SamplesByChannel {
front_left: Some(0.0),
front_right: Some(0.0),
front_center: None,
low_frequency: None,
back_left: None,
back_right: None,
front_left_of_center: None,
front_right_of_center: None,
back_center: None,
side_left: None,
side_right: None,
top_center: None,
top_front_left: None,
top_front_center: None,
top_front_right: None,
top_back_left: None,
top_back_center: None,
top_back_right: None,
}).unwrap();
writer.flush().unwrap();