Fix crash in Audio Client
Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all
Unified · Split
| @@ -598,8 +598,18 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : · 597 unmodified lines | ||
| 598 | 598 | audioThread->setObjectName("Audio Thread"); |
| 599 | 599 | |
| 600 | 600 | auto audioIO = DependencyManager::get<AudioClient>(); |
| 601 | − audioIO->setPositionGetter([this]{ return getMyAvatar()->getPositionForAudio(); }); | |
| 602 | − audioIO->setOrientationGetter([this]{ return getMyAvatar()->getOrientationForAudio(); }); | |
| 601 | + audioIO->setPositionGetter([]{ | |
| 602 | + auto avatarManager = DependencyManager::get<AvatarManager>(); | |
| 603 | + auto myAvatar = avatarManager ? avatarManager->getMyAvatar() : nullptr; | |
| 604 | + | |
| 605 | + return myAvatar ? myAvatar->getPositionForAudio() : Vectors::ZERO; | |
| 606 | + }); | |
| 607 | + audioIO->setOrientationGetter([]{ | |
| 608 | + auto avatarManager = DependencyManager::get<AvatarManager>(); | |
| 609 | + auto myAvatar = avatarManager ? avatarManager->getMyAvatar() : nullptr; | |
| 610 | + | |
| 611 | + return myAvatar ? myAvatar->getOrientationForAudio() : Quaternions::IDENTITY; | |
| 612 | + }); | |
| 603 | 613 | |
| 604 | 614 | audioIO->moveToThread(audioThread); |
| 605 | 615 | recording::Frame::registerFrameHandler(AudioConstants::getAudioFrameName(), [=](recording::Frame::ConstPointer frame) { |