может быть выполнено PlaySound в другом потоке и при необходимости уничтожить этот поток?
из этого
void MusicPlayer (){
while (music == true)
PlaySound("elevat_loop1.wav" , NULL, SND_FILENAME);
while (music == false)
PlaySound("silence.wav", NULL, SND_FILENAME);
if (music == true)
MusicPlayer();
}
рекурсия ничего не делает,даже если компилятор оптимизирует, кажется, что лучше использовать цикл
while (music == false) {...}
даст руку, когда music вернется к истине, поэтому у if (music == true)
есть большой шанс быть правдой,действительно ли это нужно для проверки?