*** DISCLAIMER ***
I have absolutely no experience of
Java FX - but from your description (the file only plays once and then never again) I'd say that when a file has finished playing, its play position doesn't get set back to the beginning of the track.
This would mean that calling play() again would cause nothing to happen since the play position is already at the end of the track.
I had a quick look at the API and noticed that under the stop() function it says 'Stops playing,
resets to beginning of media, and resets the play count'.
The play() function says 'Starts or resumes playing'.
I would say that you need to call stop() before calling play() so you can ensure the track will always play from the beginning.