Qt: как повторить звук x раз с помощью QtSound

#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(путь к файлу);