Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var protooTransport = new protoo.WebSocketTransport(callObj.url);
- protooPeer = new protoo.Peer(protooTransport);
- const ROOM_OPTIONS =
- {
- requestTimeout: 10000,
- transportOptions:
- {
- tcp: false
- }
- };
- var peerName = callObj.peerName;
- var displayName = "displayme";
- var device = mediasoupClient.getDeviceInfo();
- var produce = true;
- var room = new mediasoupClient.Room(ROOM_OPTIONS);
- // Transport for sending our media.
- var sendTransport;
- // Transport for receiving media from remote Peers.
- var recvTransport;
- protooPeer.on('open', () => {
- $log.debug('protoo Peer "open" event');
- // NOTE: We allow rejoining (room.join()) the same mediasoup Room when Protoo
- // WebSocket re-connects, so we must clean existing event listeners. Otherwise
- // they will be called twice after the reconnection.
- room.removeAllListeners();
- room.on('close', (originator, appData) => {
- if (originator === 'remote') {
- $log.warn('mediasoup Peer/Room remotely closed [appData:%o]', appData);
- //this._dispatch(stateActions.setRoomState('closed'));
- return;
- }
- });
- room.on('request', (request, callback, errback) => {
- $log.debug(
- 'sending mediasoup request [method: ' + request.method + ']: ' + request);
- protooPeer.send('mediasoup-request', request)
- .then(callback)
- .catch(errback);
- });
- room.on('notify', (notification) => {
- $log.debug(
- 'sending mediasoup notification [method:' + notification.method + ']: ' + notification,
- notification.method, notification);
- protooPeer.send('mediasoup-notification', notification)
- .catch((error) => {
- $log.warn('could not send mediasoup notification: ' + error);
- });
- });
- room.on('newpeer', (peer) => {
- $log.debug(
- 'room "newpeer" event [name:"' + peer.name + '", peer=' + peer);
- // this._handlePeer(peer);
- });
- room.join(peerName, {displayName, device})
- .then((peers) => {
- // Create Transport for sending.
- sendTransport = room.createTransport('send', {media: 'SEND_MIC_WEBCAM'});
- sendTransport.on('close', (originator) => {
- $log.debug(
- 'Transport "close" event [originator:' + originator + ']');
- });
- // Create Transport for receiving.
- recvTransport = room.createTransport('recv', {media: 'RECV'});
- recvTransport.on('close', (originator) => {
- $log.debug(
- 'receiving Transport "close" event [originator:' + originator + ']');
- });
- // Handle Peers already in to the Room.
- for (const peer of peers) {
- //ToDo
- // handlePeer(peer);
- }
- })
- .then(() => {
- return navigator.mediaDevices.getUserMedia(
- {
- audio: true
- });
- })
- .then((stream) => {
- const audioTrack = stream.getAudioTracks()[0];
- // Create Producers for audio and video.
- const audioProducer = room.createProducer(audioTrack,null, { source: 'mic' });
- audioTrack.stop();
- //$rootScope.$emit('rtc-service-localStream', stream);
- //$rootScope.$emit('rtc-service-remoteStream', stream);
- // Send our audio.
- audioProducer.send(sendTransport)
- .then(() => console.log('sending our mic'))
- .catch((error) => {
- $log.error("audio send error: " + error)});
- })
- .catch((error) => {
- $log.error('join room failed: ' + error);
- });
- setTimeout(function() {
- navigator.mediaDevices.getUserMedia(
- {
- video: true
- })
- .then((videostream) => {
- const videoTrack = videostream.getVideoTracks()[0];
- // Create Producers for audio and video.
- const videoProducer = room.createProducer(videoTrack,null, { source: 'webcam' });;
- videoTrack.stop();
- // Send our video.
- videoProducer.send(sendTransport)
- .then(() => console.log('sending our webcam'))
- .catch((error) => {
- $log.error("video send error:" + error)});
- })
- }, 5000);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement