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?