У меня есть удаленная конечная точка Webrt c (на основе libwebrt c), которая производит звук с монитора приемника pulseaudio. Я могу успешно использовать его в Chrome через тег видео html. Проблема, с которой я столкнулся, заключается в том, что звук кажется go "сумасшедшим" случайным образом, что означает, что уровень звука внезапно становится очень высоким, и его невозможно слушать.
На отправляющей стороне я использую это для отключения обработки звука:
cricket::AudioOptions options;
options.highpass_filter = false;
options.auto_gain_control = false;
options.noise_suppression = false;
options.echo_cancellation = false;
options.residual_echo_detector = false;
options.experimental_agc = false;
options.experimental_ns = false;
options.typing_detection = false;
rtc::scoped_refptr<webrtc::AudioSourceInterface> source = webrtcFactory->CreateAudioSource(options);
Но на принимающей стороне (Chrome браузер), похоже, нет способа отключить его .
Running mediaDevices.getSupportedConstraints () in Chrome возвращает:
aspectRatio: true
autoGainControl: true
brightness: true
channelCount: true
colorTemperature: true
contrast: true
deviceId: true
echoCancellation: true
exposureCompensation: true
exposureMode: true
exposureTime: true
facingMode: true
focusDistance: true
focusMode: true
frameRate: true
groupId: true
height: true
iso: true
latency: true
noiseSuppression: true
pointsOfInterest: true
resizeMode: true
sampleRate: true
sampleSize: true
saturation: true
sharpness: true
torch: true
whiteBalanceMode: true
width: true
zoom: true
Затем выполняется track. getCapabilities () in Chrome возвращает:
autoGainControl: [false]
deviceId: "7254143d-7c85-4567-9d95-94f2c79060fe"
echoCancellation: [false]
noiseSuppression: [false]
sampleSize: {max: 16, min: 16}
И, наконец, track.getConstraints () in Chrome возвращает и пусто объект.
Из вышеизложенного я понимаю, что Chrome поддерживает отмену обработки звука, а трек - нет. На данный момент я не понимаю, в какой момент (отправка или получение) обработка звука webrt c делает уровень звука go сумасшедшим.
Я читал здесь что (при использовании файла в качестве тестового ввода в Chrome) « вся обработка звука должна быть отключена, иначе звук будет искажен ». Это именно то, что я хочу сделать для своего трека, с той разницей, что, поскольку мой трек удален, я не получаю его через getUserMedia () в браузере.
I много читали об отключении обработки звука Webrt c и пробовали разные вещи как на производящей, так и на потребляющей стороне, но та же проблема по-прежнему появляется случайным образом.
Есть ли у вас какие-либо идеи, с какой стороны ( отправитель или Chrome потребитель) проблема может быть?