Fix cpal initialization on windows
This commit is contained in:
parent
466cf29eb7
commit
828acebb89
12
src/audio.rs
12
src/audio.rs
|
|
@ -4,7 +4,7 @@ use anyhow::{Result, bail};
|
||||||
use audioadapter_buffers::direct::InterleavedSlice;
|
use audioadapter_buffers::direct::InterleavedSlice;
|
||||||
use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
|
use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
|
||||||
use rubato::{Adjustable as _, Resampler};
|
use rubato::{Adjustable as _, Resampler};
|
||||||
use tracing::error;
|
use tracing::warn;
|
||||||
|
|
||||||
pub struct Audio {
|
pub struct Audio {
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
|
|
@ -23,10 +23,10 @@ impl Audio {
|
||||||
let Some(device) = host.default_output_device() else {
|
let Some(device) = host.default_output_device() else {
|
||||||
bail!("No output device available");
|
bail!("No output device available");
|
||||||
};
|
};
|
||||||
let Some(config) = device
|
let default_rate = device.default_output_config()?.sample_rate();
|
||||||
.supported_output_configs()?
|
let Some(config) = device.supported_output_configs()?.find(|c| {
|
||||||
.find(|c| c.channels() == 2 && c.sample_format().is_float())
|
c.channels() == 2 && c.sample_format().is_float() && c.contains_rate(default_rate)
|
||||||
else {
|
}) else {
|
||||||
bail!("No suitable output config available");
|
bail!("No suitable output config available");
|
||||||
};
|
};
|
||||||
let mut config = config.with_max_sample_rate().config();
|
let mut config = config.with_max_sample_rate().config();
|
||||||
|
|
@ -66,7 +66,7 @@ impl Audio {
|
||||||
}
|
}
|
||||||
chunk.commit_all();
|
chunk.commit_all();
|
||||||
},
|
},
|
||||||
move |error| error!(%error, "stream error"),
|
move |error| warn!(%error, "stream error"),
|
||||||
None,
|
None,
|
||||||
)?;
|
)?;
|
||||||
stream.play()?;
|
stream.play()?;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue