A MoonBit port (subset) of RustAudio/cpal.
{
"deps": {
"Milky2018/moon_cpal": "0.11.8"
}
}let host = @moon_cpal.default_host()
let device = match host.default_output_device() {
Some(d) => d
None => fail!("no output device")
}
let cfg = try! device.default_output_config()
let stream_cfg = cfg.config()
let stream = try! device.build_output_stream_f32(
stream_cfg,
fn(samples, _info) {
for i = 0; i < samples.length(); i = i + 1 {
samples[i] = 0.0
}
},
fn(err) { println("stream error: \{err}") },
None,
)
try! stream.play()///|
let stream = try! device.build_output_stream_raw(
stream_cfg,
cfg.sample_format(),
fn(data, _info) {
match data.sample_format() {
@moon_cpal.SampleFormat::F32 =>
ignore(data.write_f32(Array::make(data.len(), 0.0)))
@moon_cpal.SampleFormat::I16 =>
ignore(data.write_i16(Array::make(data.len(), 0)))
@moon_cpal.SampleFormat::I24 =>
ignore(data.write_i24(Array::make(data.len(), @moon_cpal.I24::new(0))))
_ => data.clear()
}
},
fn(_err) { },
None,
)A MoonBit port (subset) of RustAudio/cpal.