35 lines
847 B
JavaScript
35 lines
847 B
JavaScript
|
// Analiza zvoka
|
||
|
let analiziramZvok = false
|
||
|
let analyser = null
|
||
|
|
||
|
const fftSize = 64
|
||
|
const bufferSize = 32
|
||
|
const stolpicki = new Uint8Array(bufferSize)
|
||
|
|
||
|
// Zacni audio analizo
|
||
|
function zacniAnalizo() {
|
||
|
if (!analiziramZvok) {
|
||
|
// Analiza zvoka
|
||
|
const audioCtx = new AudioContext()
|
||
|
const mikrofon = navigator.mediaDevices.getUserMedia({ audio: true }).then(
|
||
|
(stream) => {
|
||
|
|
||
|
const source = audioCtx.createMediaStreamSource(stream)
|
||
|
|
||
|
analyser = audioCtx.createAnalyser()
|
||
|
analyser.minDecibels = -90;
|
||
|
analyser.maxDecibels = -10;
|
||
|
analyser.smoothingTimeConstant = 0.85;
|
||
|
analyser.fftSize = fftSize
|
||
|
source.connect(analyser)
|
||
|
},
|
||
|
() => {
|
||
|
console.log('napaka nalaganja mikrofona', arguments)
|
||
|
analiziramZvok = false
|
||
|
}
|
||
|
)
|
||
|
|
||
|
analiziramZvok = true
|
||
|
}
|
||
|
}
|