Fix electron windows screen and window picker for screensharing
All checks were successful
Queue Release Build / prepare (push) Successful in 44s
Queue Release Build / build-windows (push) Successful in 32m25s
Queue Release Build / build-linux (push) Successful in 42m57s
Queue Release Build / finalize (push) Successful in 3m41s

This commit is contained in:
2026-03-11 14:39:47 +01:00
parent 22f583e6b3
commit 7b3caa0b61
14 changed files with 735 additions and 132 deletions

View File

@@ -1,4 +1,8 @@
import { Injectable, inject } from '@angular/core';
import {
Injectable,
effect,
inject
} from '@angular/core';
import { WebRTCService } from '../../../../core/services/webrtc.service';
import { STORAGE_KEY_USER_VOLUMES } from '../../../../core/constants';
@@ -36,9 +40,15 @@ export class VoicePlaybackService {
private preferredOutputDeviceId = 'default';
private masterVolume = 1;
private deafened = false;
private captureEchoSuppressed = false;
constructor() {
this.loadPersistedVolumes();
effect(() => {
this.captureEchoSuppressed = this.webrtc.isScreenShareRemotePlaybackSuppressed();
this.recalcAllGains();
});
}
handleRemoteStream(peerId: string, stream: MediaStream, options: PlaybackOptions): void {
@@ -242,7 +252,7 @@ export class VoicePlaybackService {
if (!pipeline)
return;
if (this.deafened || this.isUserMuted(peerId)) {
if (this.deafened || this.captureEchoSuppressed || this.isUserMuted(peerId)) {
pipeline.gainNode.gain.value = 0;
return;
}