2020-08-21 13:37:10 +02:00
|
|
|
import {AudioRecorderBacked, DeviceList, IDevice, setRecorderBackend} from "tc-shared/audio/recorder";
|
|
|
|
import {AbstractInput, LevelMeter} from "tc-shared/voice/RecorderBase";
|
|
|
|
import {inputDeviceList} from "../audio/InputDeviceList";
|
|
|
|
import {NativeInput, NativeLevelMeter} from "../audio/AudioRecorder";
|
|
|
|
|
|
|
|
setRecorderBackend(new class implements AudioRecorderBacked {
|
|
|
|
createInput(): AbstractInput {
|
|
|
|
return new NativeInput();
|
|
|
|
}
|
|
|
|
|
|
|
|
async createLevelMeter(device: IDevice): Promise<LevelMeter> {
|
|
|
|
const meter = new NativeLevelMeter(device);
|
|
|
|
await meter.initialize();
|
|
|
|
return meter;
|
|
|
|
}
|
|
|
|
|
|
|
|
getDeviceList(): DeviceList {
|
|
|
|
return inputDeviceList;
|
|
|
|
}
|
2020-10-01 10:56:22 +02:00
|
|
|
|
|
|
|
isRnNoiseSupported(): boolean {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
toggleRnNoise(target: boolean) {
|
|
|
|
NativeLevelMeter.instances.forEach(input => input.nativeConsumer.toggle_rnnoise(target));
|
|
|
|
NativeInput.instances.forEach(input => input.nativeConsumer.toggle_rnnoise(target));
|
|
|
|
}
|
2020-08-21 13:37:10 +02:00
|
|
|
});
|