Tengo problemas para ejecutar Three.js - PositionalAudio. HTMLMediaElements con un archivo como fuente funciona bien pero con un objeto MediaStream no puedo escucharlo espacialmente (solo global).
Este código aquí funciona perfectamente:
<audio id="test_audio" src="/music/test.mp3"></audio> const listener = new THREE.AudioListener(); player_local.object.add(listener); var voice_src = game.document.getElementById("test_audio"); var voice = new THREE.PositionalAudio( listener ); voice.setMediaElementSource( voice_src); voice.setRefDistance( 5 ); voice.setDirectionalCone( 180, 230, 1 ); player_remote.object.add(voice); voice_src.play();Dentro de este fragmento, puedo escuchar el sonido, pero no espacial:
// MediaStreamObject coming from Peer.js connection const audio = document.createElement('audio'); audio.srcObject = stream; const listener = new THREE.AudioListener(); player_local.object.add(listener); var voice_src = game.document.getElementById(idOfStreamAudioElement); var voice = new THREE.PositionalAudio( listener ); voice.setMediaElementSource(voice_src); voice.setRefDistance( 5 ); voice.setDirectionalCone( 180, 230, 1 ); player_remote.object.add(voice); voice_src.play();Ya probé .setMediaStreamSource(voice_src.srcObject).
¿Alguna idea de por qué esto no funciona?