diff options
author | Paul Olav Tvete <paul.tvete@qt.io> | 2022-06-16 14:59:48 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2022-06-16 14:41:44 +0000 |
commit | 995376a8894c59d29b27c0b80f0adb91486d954e (patch) | |
tree | eeaee2ccaece2f8a71047923f29125579412fe0a /examples | |
parent | 919f72dd6d4183d666c0a61eadc21d127613530c (diff) | |
download | qtmultimedia-995376a8894c59d29b27c0b80f0adb91486d954e.tar.gz |
Update spatial audio example
Always loop the sound, and add an option to animate the position.
Pick-to: 6.4
Change-Id: Ib5b4fd230af27b74ce15285625e4c9bbf5ef3f7a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/spatialaudio/audiopanning/main.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/examples/spatialaudio/audiopanning/main.cpp b/examples/spatialaudio/audiopanning/main.cpp index 434aabe6a..b0a1f616f 100644 --- a/examples/spatialaudio/audiopanning/main.cpp +++ b/examples/spatialaudio/audiopanning/main.cpp @@ -49,6 +49,7 @@ ****************************************************************************/ #include <QtWidgets/QtWidgets> #include <QtSpatialAudio/QtSpatialAudio> +#include <QtCore/QPropertyAnimation> class AudioWidget : public QWidget { @@ -108,6 +109,9 @@ public: grid->addWidget(new QLabel(tr("Output mode:")), 8, 0); grid->addWidget(mode, 8, 1); + animateButton = new QCheckBox(tr("Animate sound position")); + grid->addWidget(animateButton, 9, 0); + connect(fileEdit, &QLineEdit::textChanged, this, &AudioWidget::fileChanged); connect(fileDialogButton, &QPushButton::clicked, this, &AudioWidget::openFileDialog); @@ -138,6 +142,13 @@ public: sound = new QSpatialSound(&engine); updatePosition(); + + animation = new QPropertyAnimation(azimuth, "value"); + animation->setDuration(10000); + animation->setStartValue(-180); + animation->setEndValue(180); + animation->setLoopCount(-1); + connect(animateButton, &QCheckBox::toggled, this, &AudioWidget::animateChanged); } void setFile(const QString &file) { fileEdit->setText(file); } private slots: @@ -164,6 +175,7 @@ private slots: { sound->setSource(QUrl::fromLocalFile(file)); sound->setSize(5); + sound->setLoops(QSpatialSound::Infinite); } void openFileDialog() { @@ -177,6 +189,13 @@ private slots: room->setReflectionGain(float(reflectionGain->value())/100); room->setReverbGain(float(reverbGain->value())/100); } + void animateChanged() + { + if (animateButton->isChecked()) + animation->start(); + else + animation->stop(); + } QLineEdit *fileEdit = nullptr; QPushButton *fileDialogButton = nullptr; @@ -188,6 +207,8 @@ private slots: QSlider *reverbGain = nullptr; QSlider *reflectionGain = nullptr; QComboBox *mode = nullptr; + QCheckBox *animateButton = nullptr; + QPropertyAnimation *animation = nullptr; QAudioEngine engine; QAudioListener *listener = nullptr; |