code: updating project and trying to fix error: seems that minimp3 has some unsafe exception
This commit is contained in:
parent
e5b572fcc1
commit
b90a37d671
1917
Cargo.lock
generated
1917
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -85,6 +85,8 @@ fn main() {
|
|||||||
println!("Server task completed successfully");
|
println!("Server task completed successfully");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
println!("Setting shutdown timeout...");
|
||||||
|
|
||||||
rt.shutdown_timeout(tokio::time::Duration::from_secs(5));
|
rt.shutdown_timeout(tokio::time::Duration::from_secs(5));
|
||||||
|
|
||||||
audio.lock().unwrap().exit();
|
audio.lock().unwrap().exit();
|
||||||
|
@ -243,7 +243,7 @@ fn detect_decoder(_file_name: &str, sound_decoder: &SoundDecoder) -> SoundDecode
|
|||||||
// TODO: File detection via ending or whitelisting?
|
// TODO: File detection via ending or whitelisting?
|
||||||
// This function MUST NOT return SoundDecoder::Detect
|
// This function MUST NOT return SoundDecoder::Detect
|
||||||
match sound_decoder {
|
match sound_decoder {
|
||||||
SoundDecoder::Detect => SoundDecoder::Mp3Mini,
|
SoundDecoder::Detect => SoundDecoder::Rodio, // Mp3Mini seems bugged.
|
||||||
other => other.clone(),
|
other => other.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -252,9 +252,11 @@ fn play_file(sink: &rodio::Sink, file_name: String, sound_decoder: &SoundDecoder
|
|||||||
match detect_decoder(&file_name, sound_decoder) {
|
match detect_decoder(&file_name, sound_decoder) {
|
||||||
SoundDecoder::Mp3Mini => {
|
SoundDecoder::Mp3Mini => {
|
||||||
// MP3 Mini provides low latency playback
|
// MP3 Mini provides low latency playback
|
||||||
let mut sound_file = File::open(file_name).unwrap();
|
let mut sound_file = File::open(file_name).expect("Failed opening sound file.");
|
||||||
let mut file_data = Vec::new();
|
let mut file_data = Vec::new();
|
||||||
sound_file.read_to_end(&mut file_data).unwrap();
|
sound_file
|
||||||
|
.read_to_end(&mut file_data)
|
||||||
|
.expect("Failed reading sound file.");
|
||||||
// Iterate over the MP3 frames and play them
|
// Iterate over the MP3 frames and play them
|
||||||
let mut decoder = Decoder::new(Cursor::new(file_data));
|
let mut decoder = Decoder::new(Cursor::new(file_data));
|
||||||
loop {
|
loop {
|
||||||
@ -262,7 +264,10 @@ fn play_file(sink: &rodio::Sink, file_name: String, sound_decoder: &SoundDecoder
|
|||||||
Ok(frame) => {
|
Ok(frame) => {
|
||||||
let source = rodio::buffer::SamplesBuffer::new(
|
let source = rodio::buffer::SamplesBuffer::new(
|
||||||
2,
|
2,
|
||||||
frame.sample_rate.try_into().unwrap(),
|
frame
|
||||||
|
.sample_rate
|
||||||
|
.try_into()
|
||||||
|
.expect("Sample Rate unlocking failed"),
|
||||||
&*frame.data,
|
&*frame.data,
|
||||||
);
|
);
|
||||||
sink.append(source);
|
sink.append(source);
|
||||||
|
Loading…
Reference in New Issue
Block a user