#c #qt #qt4
#c #qt #qt4
Вопрос:
Я не уверен, что правильно понимаю, как должна работать функция QSound.setLoop.
Я хочу воспроизвести некоторый файл wave 3 раза. Попробовал следующий код, но он воспроизводит его только один раз.
QSound soundObj(filePath);
soundObj.setLoops(3);
soundObj.play();
Помогите 🙂
Редактировать: полная версия этого кода выглядит следующим образом
void Alarms::playSound(QString filePath)
{
QSound soundObj(filePath);
soundObj.setLoops(3);
soundObj.play();
}
Комментарии:
1. Это должно работать просто отлично. Не могли бы вы остановить звук вскоре после этого?
2. Вы правы 🙂 мой объект QSound был уничтожен слишком рано. Вместо этого я использовал динамическое распределение, и оно отлично работает.
3. 🙂 Должно было быть что-то подобное. Рад, что это решено.
Ответ №1:
Объект soundObj уничтожается слишком быстро.
Должно быть выделено динамически.
Комментарии:
1. Правильно. воспроизведение немедленно возвращается, поэтому цикл событий начинает воспроизводить звуки. Если объект уничтожен, звуки также прекращаются.
2. или с помощью: static QSound soundObj(путь к файлу);