ISSUE SOLVED, THANK YOU ALL
Rust Programming
You say you've tried longer durations, but you're only sleeping for microseconds here... I'd assume you're simply playing the sound 30 times in 30 microseconds and as such only hear the last iteration. If you want the whole file to play every time, you could replace play_raw
with play_once
and use the returned Sink to simply sleep_until_end()
instead of your own delay.
Edit: I just saw that you wrote that the clip played once and then quit, that doesn't make a lot of sense (with that sleep duration, it should quit pretty much immediately). It's been a while since I played around with Rodio and things seem to have changed a little. From quickly looking into it, I'd probably only call your play_sound
function once and edit it to create a Sink
in there (see the example in the documentation). You can then append an infinitely repeating source to that sink and sleep for you total desired duration.
I don't know Rodio, but in line 75 of your code, you're hiding errors. You need to unwrap/expect the result or do something with it to see what errors are being thrown.