I tried the play/stop/play stuff with the current trunk (SFML 1.6), it works fine.
The code I used is the Sound sample, with Music.Play() replaced with
Music.Play();
sf::Sleep(2);
Music.Stop();
Music.Play();
Make sure that you recompiled SFML from scratch ("make clean", or "rebuild" in IDE) and that there's no version of any DLL (including OpenAL) that could conflict with it.
If it doesn't help, you can try the Sound sample like I did. If it works then you probably have an error in your own code.
I just tested out the Sound sample according to your changes, and it does work. It was very easy to test out the sample with my existing build system by just replacing the contents of my main.cpp file with the sample Sound.cpp
I'm glad the samples here are pretty small and easily readable, also goes to show how much little setup is needed to get something running (one of the reasons I really like this library).
Anyway, it looks like I was doing everything you are doing, except for one thing. I wasn't using those sf::Sleep commands anywhere. Commenting out the one you put in there into the sample recreates the same issue I am having. So I guess I'm having some kind of threading problem? Not giving enough sleep time inbetween calls to the SFML audio components? Is there some sort of guide to follow on how/when to put those calls in? Should I be putting sf::sleep calls in my mainloop for each music file that is playing? I've done some multithreaded programming before, but it's never been my strong point
Putting a Play(), sleep(2), stop(), play(), sleep(2), in my code, is giving me a similar thing as before, where it starts playing, stops, and then doesn't play again on the second play(). Any tips?
At least I'm getting this resolved though and it looks like it's just a matter of proper threading