Eu tenho um caso de uso onde:
Para este caso de uso eu preciso, para o lado do Visualizador:
var call = peer.call(presenterPeerID, null);
call.on('stream', function(theirWebcamStream) {
showWebcamStream(theirWebcamStream);
});
Isso não funciona, porque peer.call(presenterPeerID, null)
retorna undefined
.
Como faço para ligar sem enviar um MediaStream?
Assine esta edição
Você tentou iniciar a chamada do apresentador para o visualizador, fornecendo aos apresentadores mediastream na chamada e respondendo a chamada com null como mediastream?
Também espero fazer o mesmo. Veja a edição nº 158
+1
Você pode criar um fluxo vazio com qualquer faixa ou com ambas:
export const createEmptyAudioTrack = () => {
const ctx = new AudioContext();
const oscillator = ctx.createOscillator();
const dst = oscillator.connect(ctx.createMediaStreamDestination());
oscillator.start();
const track = dst.stream.getAudioTracks()[0];
return Object.assign(track, { enabled: false });
};
export const createEmptyVideoTrack = ({ width, height }) => {
const canvas = Object.assign(document.createElement('canvas'), { width, height });
canvas.getContext('2d').fillRect(0, 0, width, height);
const stream = canvas.captureStream();
const track = stream.getVideoTracks()[0];
return Object.assign(track, { enabled: false });
};
...
const audioTrack = createEmptyAudioTrack();
const videoTrack = createEmptyVideoTrack({ width:640, height:480 });
const mediaStream = new MediaStream([audioTrack, videoTrack]);
peer.call('id', mediaStream);
Comentários muito úteis
Você pode criar um fluxo vazio com qualquer faixa ou com ambas: