diff --git a/libraries/ui/src/ui/OffscreenQmlSurface.cpp b/libraries/ui/src/ui/OffscreenQmlSurface.cpp index 12220a8079..112d70c394 100644 --- a/libraries/ui/src/ui/OffscreenQmlSurface.cpp +++ b/libraries/ui/src/ui/OffscreenQmlSurface.cpp @@ -680,7 +680,9 @@ void OffscreenQmlSurface::create() { // Setup the update of the QML media components with the current audio output device QObject::connect(&_audioOutputUpdateTimer, &QTimer::timeout, this, [this]() { if (_currentAudioOutputDevice.size() > 0) { - new AudioHandler(sharedFromThis(), _currentAudioOutputDevice); + QMutexLocker lock(&_audioHandlerMutex); + QString audioDeviceName = _currentAudioOutputDevice; + new AudioHandler(sharedFromThis(), audioDeviceName); } }); int waitForAudioQmlMs = 200; diff --git a/libraries/ui/src/ui/OffscreenQmlSurface.h b/libraries/ui/src/ui/OffscreenQmlSurface.h index 4c23c62c12..370ddb4f2f 100644 --- a/libraries/ui/src/ui/OffscreenQmlSurface.h +++ b/libraries/ui/src/ui/OffscreenQmlSurface.h @@ -173,6 +173,7 @@ private: uint64_t _lastRenderTime { 0 }; uvec2 _size; + QMutex _audioHandlerMutex; QTimer _audioOutputUpdateTimer; QString _currentAudioOutputDevice;