Этот тест ранее работал, но, похоже, это уже не так. DataArray возвращает массив нулей. Смешали немного javascript, чтобы получить аудио из mediaStream, вручную подтвердив, что mediaStream существует и этот звук действительно слышен с моей стороны. Вот текущий javascript используется. Поток Js является медиапотоком.
String script = "var callback = arguments[arguments.length-1];"
+ "var audioCtx = new window.AudioContext();"
+ "var analyser = audioCtx.createAnalyser();"
+ "var stream = "+streamJs+";"
+ "var source = audioCtx.createMediaStreamSource(stream);"
+ "source.connect(analyser);"
+ "analyser.fftSize = 256;"
+ "analyser.smoothingTimeConstant = 0;"
+ "setTimeout(() => {"
+ "var bufferLength = analyser.frequencyBinCount;"
+ "var dataArray = new Uint8Array(bufferLength);"
+ "analyser.getByteFrequencyData(dataArray);"
+ "audioCtx.close();"
+ "callback(Math.max(...dataArray));"
+ "}, 500);";
browser.setAsyncScriptTimeout(5000);
long maxFft = browser.executeAsyncJavascript(script);
return maxFft > 0;