Lo que quiero hacer es recibir sonido de un servidor mediasoup. Mezclarlo y luego enviarlo a otro servidor. Esto parecía una tarea simple, pero durante un par de días he estado luchando con ella.
¿Cómo lo hago? Pongo el audio que recibo en las etiquetas <audio> Y aquí está mi código
let audioContext = new (window.AudioContext || window.webkitAudioContext)(); const audioElement = document.getElementById(this.consumer.id) const incomingSource = audioContext.createMediaElementSource(audioElement); this.filter = audioContext.createBiquadFilter(); this.filter.type = "lowpass"; this.filter.frequency.value = 1000; const outgoingStream = new MediaStreamAudioDestinationNode(audioContext); incomingSource.connect(this.filter); this.filter.connect(outgoingStream); this.outgoingTrack = outgoingStream.stream.getAudioTracks()[0]; Y luego estoy enviando esto a través de mediasoup usando this.sendTransport.produce({track: this.outgoingTrack})
Lo que creo que estoy haciendo es obtener el sonido que recibí, luego conectar el filtro a este sonido, luego conectar el filtro a la transmisión que quiero reenviar y finalmente enviar la pista.
Pero eso no funciona, así que aparentemente estoy haciendo algo mal. Cuando estoy haciendo esto sin filtro como este:
let audioContext = new (window.AudioContext || window.webkitAudioContext)(); const audioElement = document.getElementById(this.consumer.id) const incomingSource = audioContext.createMediaElementSource(audioElement); const srcObject = incomingSource.mediaElement.srcObject; const outgoingTrack1 = srcObject.getAudioTracks()[0]Funciona a la perfección, pero solo transmite el sonido sin ningún cambio.
Entonces, ¿cómo puedo mezclar este sonido?