diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/multimedia/spectrum/app/engine.cpp | 19 | ||||
-rw-r--r-- | examples/multimedia/spectrum/app/engine.h | 1 | ||||
-rw-r--r-- | examples/multimedia/spectrum/app/mainwidget.cpp | 7 | ||||
-rw-r--r-- | examples/multimediawidgets/player/player.cpp | 4 |
4 files changed, 29 insertions, 2 deletions
diff --git a/examples/multimedia/spectrum/app/engine.cpp b/examples/multimedia/spectrum/app/engine.cpp index 3a01fa7a7..eae4c8e74 100644 --- a/examples/multimedia/spectrum/app/engine.cpp +++ b/examples/multimedia/spectrum/app/engine.cpp @@ -103,6 +103,23 @@ Engine::Engine(QObject *parent) this, SLOT(spectrumChanged(FrequencySpectrum))); + // This code might misinterpret things like "-something -category". But + // it's unlikely that that needs to be supported so we'll let it go. + QStringList arguments = QCoreApplication::instance()->arguments(); + for (int i = 0; i < arguments.count(); ++i) { + if (arguments.at(i) == QStringLiteral("--")) + break; + + if (arguments.at(i) == QStringLiteral("-category") + || arguments.at(i) == QStringLiteral("--category")) { + ++i; + if (i < arguments.count()) + m_audioOutputCategory = arguments.at(i); + else + --i; + } + } + initialize(); #ifdef DUMP_DATA @@ -494,6 +511,7 @@ bool Engine::initialize() } m_audioOutput = new QAudioOutput(m_audioOutputDevice, m_format, this); m_audioOutput->setNotifyInterval(NotifyIntervalMs); + m_audioOutput->setCategory(m_audioOutputCategory); } } else { if (m_file) @@ -508,6 +526,7 @@ bool Engine::initialize() ENGINE_DEBUG << "Engine::initialize" << "m_bufferLength" << m_bufferLength; ENGINE_DEBUG << "Engine::initialize" << "m_dataLength" << m_dataLength; ENGINE_DEBUG << "Engine::initialize" << "format" << m_format; + ENGINE_DEBUG << "Engine::initialize" << "m_audioOutputCategory" << m_audioOutputCategory; return result; } diff --git a/examples/multimedia/spectrum/app/engine.h b/examples/multimedia/spectrum/app/engine.h index db76d7b42..af08b83cc 100644 --- a/examples/multimedia/spectrum/app/engine.h +++ b/examples/multimedia/spectrum/app/engine.h @@ -287,6 +287,7 @@ private: const QList<QAudioDeviceInfo> m_availableAudioOutputDevices; QAudioDeviceInfo m_audioOutputDevice; QAudioOutput* m_audioOutput; + QString m_audioOutputCategory; qint64 m_playPosition; QBuffer m_audioOutputIODevice; diff --git a/examples/multimedia/spectrum/app/mainwidget.cpp b/examples/multimedia/spectrum/app/mainwidget.cpp index a69c85a44..35b92d13e 100644 --- a/examples/multimedia/spectrum/app/mainwidget.cpp +++ b/examples/multimedia/spectrum/app/mainwidget.cpp @@ -109,7 +109,9 @@ void MainWidget::stateChanged(QAudio::Mode mode, QAudio::State state) updateButtonStates(); - if (QAudio::ActiveState != state && QAudio::SuspendedState != state) { + if (QAudio::ActiveState != state && + QAudio::SuspendedState != state && + QAudio::InterruptedState != state) { m_levelMeter->reset(); m_spectrograph->reset(); } @@ -418,7 +420,8 @@ void MainWidget::updateButtonStates() const bool playEnabled = (/*m_engine->dataLength() &&*/ (QAudio::AudioOutput != m_engine->mode() || (QAudio::ActiveState != m_engine->state() && - QAudio::IdleState != m_engine->state()))); + QAudio::IdleState != m_engine->state() && + QAudio::InterruptedState != m_engine->state()))); m_playButton->setEnabled(playEnabled); } diff --git a/examples/multimediawidgets/player/player.cpp b/examples/multimediawidgets/player/player.cpp index 8f291c501..085dff6a7 100644 --- a/examples/multimediawidgets/player/player.cpp +++ b/examples/multimediawidgets/player/player.cpp @@ -60,6 +60,10 @@ Player::Player(QWidget *parent) { //! [create-objs] player = new QMediaPlayer(this); + player->setAudioRole(QAudio::VideoRole); + qInfo() << "Supported audio roles:"; + for (QAudio::Role role : player->supportedAudioRoles()) + qInfo() << " " << role; // owned by PlaylistModel playlist = new QMediaPlaylist(); player->setPlaylist(playlist); |