code: throwing out mp3mini, fixing cargo issues on windows with ksni
This commit is contained in:
parent
543ea46ad0
commit
61ed1afe9f
5946
Cargo.lock
generated
Normal file
5946
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -14,7 +14,6 @@ dotenvy = "0.15.7"
|
||||
enigo = "0.2.1"
|
||||
log = "0.4.20"
|
||||
minijinja = { version = "2.0.1", features = ["loader"] }
|
||||
minimp3 = "0.5.1"
|
||||
mp3-duration = "0.1.10"
|
||||
regex = "1.9.0"
|
||||
rodio = "0.18.1"
|
||||
@ -22,11 +21,14 @@ serde = { version = "1.0.171", features = ["derive"] }
|
||||
tokio = { version = "1.29.1", features = ["full"] }
|
||||
xxhash-rust = { version = "0.8.6", features = ["xxh3", "const_xxh3"] }
|
||||
eframe = "0.27.2"
|
||||
tray-item = { version = "0.10", features = ["ksni"] }
|
||||
tray-item = { version = "0.10" }
|
||||
once_cell = "1.19.0"
|
||||
raw-window-handle = "0.6.2"
|
||||
image = "0.25.1"
|
||||
|
||||
[target.'cfg(target_os = "linux")'.dependencies]
|
||||
tray-item = { version = "0.10", features = ["ksni"] }
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
winit = "0.30"
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
use cpal::traits::{DeviceTrait, HostTrait};
|
||||
use cpal::{Device, Host};
|
||||
use log::{debug, error, info};
|
||||
use minimp3::{Decoder, Error};
|
||||
use regex::Regex;
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
@ -17,7 +16,6 @@ use std::thread;
|
||||
#[derive(Clone)]
|
||||
pub enum SoundDecoder {
|
||||
Detect,
|
||||
Mp3Mini,
|
||||
Rodio,
|
||||
}
|
||||
|
||||
@ -250,39 +248,6 @@ fn detect_decoder(_file_name: &str, sound_decoder: &SoundDecoder) -> SoundDecode
|
||||
|
||||
fn play_file(sink: &rodio::Sink, file_name: String, sound_decoder: &SoundDecoder) {
|
||||
match detect_decoder(&file_name, sound_decoder) {
|
||||
SoundDecoder::Mp3Mini => {
|
||||
// MP3 Mini provides low latency playback
|
||||
let mut sound_file = File::open(file_name).expect("Failed opening sound file.");
|
||||
let mut file_data = Vec::new();
|
||||
sound_file
|
||||
.read_to_end(&mut file_data)
|
||||
.expect("Failed reading sound file.");
|
||||
// Iterate over the MP3 frames and play them
|
||||
let mut decoder = Decoder::new(Cursor::new(file_data));
|
||||
loop {
|
||||
match decoder.next_frame() {
|
||||
Ok(frame) => {
|
||||
let source = rodio::buffer::SamplesBuffer::new(
|
||||
2,
|
||||
frame
|
||||
.sample_rate
|
||||
.try_into()
|
||||
.expect("Sample Rate unlocking failed"),
|
||||
&*frame.data,
|
||||
);
|
||||
sink.append(source);
|
||||
}
|
||||
Err(Error::Eof) => {
|
||||
debug!("EOF");
|
||||
break;
|
||||
}
|
||||
Err(e) => {
|
||||
error!("{:?}", e);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SoundDecoder::Rodio => {
|
||||
// Rodio currently supports Ogg, Mp3, WAV and Flac
|
||||
let file = File::open(&file_name).unwrap();
|
||||
|
Loading…
Reference in New Issue
Block a user