diff --git a/src/audio.rs b/src/audio.rs index 13d36c3..86d990e 100644 --- a/src/audio.rs +++ b/src/audio.rs @@ -4,7 +4,7 @@ use anyhow::{Result, bail}; use audioadapter_buffers::direct::InterleavedSlice; use cpal::traits::{DeviceTrait, HostTrait, StreamTrait}; use rubato::{Adjustable as _, Resampler}; -use tracing::error; +use tracing::warn; pub struct Audio { #[allow(unused)] @@ -23,10 +23,10 @@ impl Audio { let Some(device) = host.default_output_device() else { bail!("No output device available"); }; - let Some(config) = device - .supported_output_configs()? - .find(|c| c.channels() == 2 && c.sample_format().is_float()) - else { + let default_rate = device.default_output_config()?.sample_rate(); + let Some(config) = device.supported_output_configs()?.find(|c| { + c.channels() == 2 && c.sample_format().is_float() && c.contains_rate(default_rate) + }) else { bail!("No suitable output config available"); }; let mut config = config.with_max_sample_rate().config(); @@ -66,7 +66,7 @@ impl Audio { } chunk.commit_all(); }, - move |error| error!(%error, "stream error"), + move |error| warn!(%error, "stream error"), None, )?; stream.play()?;