В моей программе можно выбрать звук для действия. звук изменяемый, это означает, что файл .wav
заменяется другим файлом.
Это может вызвать проблему. Когда я заменяю файл и устанавливаю источник QSoundEffect
, звук не меняется.
На данный момент у меня есть такой источник:
//variable in .h
QUrl sound = "file:///"+soundDirectory+"sound.wav";
QUrl newSound = "file:///"+soundDirectory+"newSound.wav"; ;
QSoundEffect soundeffect;
//called in setSound() in .cpp
soundEffect.setSource(sound);
звук загружается без проблем, и я могу воспроизвести этот звук.
я могу изменить этот звук с помощью этого кода
// changing the sound in changeSound()
soundEffect.setSource(newSound);
это тоже отлично работает. загружен новый звук, и я могу его воспроизвести.
Но также можно изменить звуковые файлы в каталоге:
//changeSoundFile()
QFile::remove(sound.toLocalFile());
QFile::copy(anyPossibleSound.toLocalFile(), sound.toLocalFile());
Это также работает и заменяет звуковой файл в его каталоге другим.
Если я позвоню setSound()
после изменения файла. Кажется, что файл не получает перезагрузки. и звук не изменился. Это также проблема, если изменить звук между (вызов setSound
при запуске, затем changeSound, затем changeSoundFile и setSound
снова)
Я что-то пропускаю?