generated from PlexSheep/rs-base
fix(notify): sound did not play
cargo devel CI / cargo CI (push) Failing after 1m11s
Details
cargo devel CI / cargo CI (push) Failing after 1m11s
Details
This commit is contained in:
parent
5e2621e828
commit
bec4f3d68a
|
@ -15,15 +15,18 @@ categories = ["date-and-time"]
|
||||||
[features]
|
[features]
|
||||||
default = ["desktop", "sound"]
|
default = ["desktop", "sound"]
|
||||||
desktop = ["dep:notify-rust"]
|
desktop = ["dep:notify-rust"]
|
||||||
sound = ["dep:rodio", "desktop"]
|
sound = ["dep:awedio", "desktop"]
|
||||||
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.86"
|
anyhow = "1.0.86"
|
||||||
|
awedio = { version = "0.4.0", optional = true, default-features = false, features = [
|
||||||
|
"cpal",
|
||||||
|
"rmp3-mp3",
|
||||||
|
] }
|
||||||
chrono = "0.4.38"
|
chrono = "0.4.38"
|
||||||
humantime = "2.1.0"
|
humantime = "2.1.0"
|
||||||
libpt = { version = "0.6.0", features = ["cli"] }
|
libpt = { version = "0.6.0", features = ["cli"] }
|
||||||
notify-rust = { version = "4.11.0", optional = true }
|
notify-rust = { version = "4.11.0", optional = true }
|
||||||
ratatui = "0.27.0"
|
ratatui = "0.27.0"
|
||||||
rodio = { version = "0.19.0", optional = true }
|
|
||||||
tui-big-text = "0.4.5"
|
tui-big-text = "0.4.5"
|
||||||
|
|
11
src/clock.rs
11
src/clock.rs
|
@ -407,17 +407,18 @@ impl Clock {
|
||||||
Self::beep()?;
|
Self::beep()?;
|
||||||
#[cfg(feature = "sound")]
|
#[cfg(feature = "sound")]
|
||||||
{
|
{
|
||||||
|
use awedio::Sound;
|
||||||
trace!("playing bundled sound");
|
trace!("playing bundled sound");
|
||||||
use rodio::{source::Source, Decoder, OutputStream};
|
|
||||||
|
|
||||||
// only 30 KiB, so let's just include it in the binary and not worry about reading it
|
// only 30 KiB, so let's just include it in the binary and not worry about reading it
|
||||||
// from the fs and somehow making the file be there
|
// from the fs and somehow making the file be there
|
||||||
let sound: Cursor<_> = std::io::Cursor::new(include_bytes!("../data/media/alarm.mp3"));
|
let sound: Cursor<_> = std::io::Cursor::new(include_bytes!("../data/media/alarm.mp3"));
|
||||||
|
|
||||||
// Get an output stream handle to the default physical sound device
|
let (mut manager, _backend) = awedio::start()?;
|
||||||
let (_stream, stream_handle) = OutputStream::try_default().unwrap();
|
let decoder = awedio::sounds::decoders::Mp3Decoder::new(sound);
|
||||||
let source = Decoder::new(sound).expect("could not load the included sound");
|
|
||||||
stream_handle.play_raw(source.convert_samples())?; // the sound plays in another thread
|
manager.play(Box::new(decoder.into_memory_sound()?));
|
||||||
|
|
||||||
debug!("played bundled sound");
|
debug!("played bundled sound");
|
||||||
}
|
}
|
||||||
#[cfg(feature = "desktop")]
|
#[cfg(feature = "desktop")]
|
||||||
|
|
Reference in New Issue