Comments (4)
Thanks @Krzmbrzl, that's really helpful. It looks like the CoreAudioOutput::propertyChange
is the key piece here - it's not being invoked when switching devices, presumably because kAudioUnitProperty_StreamFormat
is not changing on the AUHAL unit (which is the only property that Mumble is listening on). Suggesting that maybe we need to listen to additional kAudioUnitProperty_*
changes, but I'm not familiar with CoreAudio so I don't really know how it's supposed to work at the moment.
Interestingly, when I switch off my bluetooth headphones while Mumble is using them, kAudioUnitProperty_StreamFormat
is changing, the property change callback is invoked, and the audio switches correctly to my computer speakers. I'm not sure why the property is changing in that scenario only. I'll keep reading through the CoreAudio docs and see if I can figure it out.
from mumble.
Ok, it took a bit of googling (CoreAudio documentation is awful) but the patch in #5273 solves the issue, and it works great.
from mumble.
This is still an issue with macOS 11.6 / mumble 1.3.3, and it's rather a troublesome one for me at least.
I'd be happy to have a go at patching this myself, if someone could give me a very brief clue on the right part of the codebase to look at?
from mumble.
I'm not too familiar with the exact details but you should be able to work your way through by looking in src/mumble/AudioConfigDialog.cpp
(this is the functional backend for the audio input/output settings pages) where qcbDevice
should be the combo box in which you can set the device to use (the variable has the same name for the input and output dialog).
The actual audio stuff happens in src/mumble/AudioInput.cpp
and src/mumble/AudioOutput.cpp
and/or in the backend-specific code that can also be found under src/mumble
. I think on macOS what you are looking for there is CoreAudio.mm
.
Is that enough to get you started on this?
from mumble.
Related Issues (20)
- PC register does not match crashing frame (0x0 vs 0x107EBFCD8) HOT 1
- Prepare Mumble for newer protobuf versions
- Add DeepFilterNet noise suppression HOT 3
- Mumble 1.5.517 RC can't import PFX certificate file HOT 4
- Allow specifying installation folder HOT 2
- Disabling notification method for message type will uncheck it for all message types, if "All messages" was enabled HOT 5
- Docker build error HOT 1
- [Regression] Mumble crashes immediately when showing the connect dialog HOT 1
- Positional audio: round table-like arrangement HOT 1
- No input/output after resuming PC from suspend HOT 2
- Murmur assumes clients are UDP capable by default HOT 4
- Webhook for authentication HOT 1
- Mircopatch to detect arm64 / aach64 architecture HOT 1
- Multi entradas de áudio HOT 3
- live voice chat in flutter and the dumble package HOT 3
- 1.5.517 crashes on startup on MacOS Sonoma HOT 3
- Unauthenticated users cannot create channels, including with access for that permission HOT 5
- translation error, Dutch HOT 1
- compile fails at get_compiler_flags HOT 5
- Mumble hangs when engaging positional audio plugins HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mumble.