Advanced audio processing settings (#8759)
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com> Fixes https://github.com/vector-im/element-web/issues/6278 Fixes undefined
This commit is contained in:
parent
da779531f1
commit
afdf289a78
7 changed files with 257 additions and 22 deletions
|
@ -88,6 +88,16 @@ export default class MediaDeviceHandler extends EventEmitter {
|
|||
|
||||
await MatrixClientPeg.get().getMediaHandler().setAudioInput(audioDeviceId);
|
||||
await MatrixClientPeg.get().getMediaHandler().setVideoInput(videoDeviceId);
|
||||
|
||||
await MediaDeviceHandler.updateAudioSettings();
|
||||
}
|
||||
|
||||
private static async updateAudioSettings(): Promise<void> {
|
||||
await MatrixClientPeg.get().getMediaHandler().setAudioSettings({
|
||||
autoGainControl: MediaDeviceHandler.getAudioAutoGainControl(),
|
||||
echoCancellation: MediaDeviceHandler.getAudioEchoCancellation(),
|
||||
noiseSuppression: MediaDeviceHandler.getAudioNoiseSuppression(),
|
||||
});
|
||||
}
|
||||
|
||||
public setAudioOutput(deviceId: string): void {
|
||||
|
@ -123,6 +133,21 @@ export default class MediaDeviceHandler extends EventEmitter {
|
|||
}
|
||||
}
|
||||
|
||||
public static async setAudioAutoGainControl(value: boolean): Promise<void> {
|
||||
await SettingsStore.setValue("webrtc_audio_autoGainControl", null, SettingLevel.DEVICE, value);
|
||||
await MediaDeviceHandler.updateAudioSettings();
|
||||
}
|
||||
|
||||
public static async setAudioEchoCancellation(value: boolean): Promise<void> {
|
||||
await SettingsStore.setValue("webrtc_audio_echoCancellation", null, SettingLevel.DEVICE, value);
|
||||
await MediaDeviceHandler.updateAudioSettings();
|
||||
}
|
||||
|
||||
public static async setAudioNoiseSuppression(value: boolean): Promise<void> {
|
||||
await SettingsStore.setValue("webrtc_audio_noiseSuppression", null, SettingLevel.DEVICE, value);
|
||||
await MediaDeviceHandler.updateAudioSettings();
|
||||
}
|
||||
|
||||
public static getAudioOutput(): string {
|
||||
return SettingsStore.getValueAt(SettingLevel.DEVICE, "webrtc_audiooutput");
|
||||
}
|
||||
|
@ -135,6 +160,18 @@ export default class MediaDeviceHandler extends EventEmitter {
|
|||
return SettingsStore.getValueAt(SettingLevel.DEVICE, "webrtc_videoinput");
|
||||
}
|
||||
|
||||
public static getAudioAutoGainControl(): boolean {
|
||||
return SettingsStore.getValue("webrtc_audio_autoGainControl");
|
||||
}
|
||||
|
||||
public static getAudioEchoCancellation(): boolean {
|
||||
return SettingsStore.getValue("webrtc_audio_echoCancellation");
|
||||
}
|
||||
|
||||
public static getAudioNoiseSuppression(): boolean {
|
||||
return SettingsStore.getValue("webrtc_audio_noiseSuppression");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current set deviceId for a device kind
|
||||
* @param {MediaDeviceKindEnum} kind of the device that will be returned
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue