buongiorno, ho scritto questo codice per creare un sito con cui si può registrare lo schermo del computer. ecco il codice javascript:

codice:
let btn = document.querySelector(".record-btn")  
btn.addEventListener("click", async function () {  
  let stream = await navigator.mediaDevices.getDisplayMedia({  
    video: true  
  })  
  //per il supporto di tutti i browser
  const mime = MediaRecorder.isTypeSupported("video/mp4; codecs=h264")   
       ? "video/webm; codecs=vp9"   
       : "video/webm"  
  let mediaRecorder = new MediaRecorder(stream, {  
    mimeType: mime  
  })  
  let chunks = []  
  mediaRecorder.addEventListener('dataavailable', function(e) {  
    chunks.push(e.data)  
  })  
  mediaRecorder.addEventListener('stop', function(){  
    let blob = new Blob(chunks, {  
      type: chunks[0].type  
    })  
    let url = URL.createObjectURL(blob)
    let video = document.querySelector("video")  
    video.src = url  
    let a = document.createElement('a')  
    a.href = url  
    var nomefile = document.getElementById("txtnome").value
    var formatofile = document.getElementById("txtformato").value
    var nomecompleto = nomefile + formatofile
    a.download = nomecompleto
    a.click()  
  })  
  mediaRecorder.start()  
})

qua 'nomefile' e 'formatofile' rappresentano il contenuto di un input nel codice html. ora, il problema è che il file non viene effettivamente scaricato. la registrazione dello schermo viene effettuata con successo, perchè oltre agli input nella mia pagina html c'è anche un'anteprima che visualizza la registrazione una volta terminata. il problema è appunto che il file non viene scaricato in automatico. ho notato però che prima di avere creato le variabili citate prima (nomefile e formatofile), tutto funzionava correttamente.
qualcuno sa come funziona?