d0ad8afe64
`getUserMedia` is called by each audio bridge if it hasn't been triggered during pre-flight screens. This ties gUM to the bridge's negotiation timers and audio-manager's activation tracking, leading to two issues: - A gUM prompt left unanswered for over 30 seconds can cause an incorrect 1010 (negotiation timeout) audio error. - If `retryThroughRelay: true`, and a joinAudio timeout occurs due to an unanswered gUM prompt, but the user responds while the system retries the connection, it can create overlapping audio sessions, resulting in mute state inconsistencies when `muteOnStart: true`. This commit addresses these issues by moving gUM handling to the audio-manager before any bridge action. This removes gUM from the negotiation timeout trackers, ensuring that gUM errors are treated as browser API errors (as expected). Additionally, audio activation tracking in audio-manager has been updated to exclude gUM times. Initially, gUM was included to catch unintended browser-related gUM timeouts (e.g., Chrome bugs), but this skewed the metric intended for tracking *negotiation times*. With this change, `secondsToActivateAudio` will now focus solely on negotiation. |
||
---|---|---|
.. | ||
.vscode | ||
client | ||
imports | ||
private/config | ||
public | ||
server | ||
.eslintignore | ||
.eslintrc.js | ||
.gitignore | ||
babel.config.js | ||
deploy.sh | ||
jsconfig.json | ||
package-lock.json | ||
package.json | ||
run-dev.sh | ||
test-html5.sh | ||
tsconfig.json | ||
webpack.config.js |