Advertisement
Guest User

failing mediasoup example

a guest
Jun 8th, 2018
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var protooTransport = new protoo.WebSocketTransport(callObj.url);
  2. protooPeer = new protoo.Peer(protooTransport);
  3.  
  4.  
  5. const ROOM_OPTIONS =
  6.     {
  7.         requestTimeout: 10000,
  8.         transportOptions:
  9.             {
  10.                 tcp: false
  11.             }
  12.     };
  13.  
  14. var peerName = callObj.peerName;
  15. var displayName = "displayme";
  16. var device = mediasoupClient.getDeviceInfo();
  17.  
  18. var produce = true;
  19.  
  20. var room = new mediasoupClient.Room(ROOM_OPTIONS);
  21.  
  22. // Transport for sending our media.
  23. var sendTransport;
  24.  
  25. // Transport for receiving media from remote Peers.
  26. var recvTransport;
  27.  
  28. protooPeer.on('open', () => {
  29.     $log.debug('protoo Peer "open" event');
  30.  
  31.     // NOTE: We allow rejoining (room.join()) the same mediasoup Room when Protoo
  32.     // WebSocket re-connects, so we must clean existing event listeners. Otherwise
  33.     // they will be called twice after the reconnection.
  34.     room.removeAllListeners();
  35.  
  36.     room.on('close', (originator, appData) => {
  37.         if (originator === 'remote') {
  38.             $log.warn('mediasoup Peer/Room remotely closed [appData:%o]', appData);
  39.  
  40.             //this._dispatch(stateActions.setRoomState('closed'));
  41.  
  42.             return;
  43.         }
  44.     });
  45.  
  46.     room.on('request', (request, callback, errback) => {
  47.         $log.debug(
  48.             'sending mediasoup request [method: ' + request.method + ']: ' + request);
  49.  
  50.         protooPeer.send('mediasoup-request', request)
  51.             .then(callback)
  52.             .catch(errback);
  53.     });
  54.  
  55.     room.on('notify', (notification) => {
  56.         $log.debug(
  57.             'sending mediasoup notification [method:' + notification.method + ']: ' + notification,
  58.             notification.method, notification);
  59.  
  60.         protooPeer.send('mediasoup-notification', notification)
  61.             .catch((error) => {
  62.                 $log.warn('could not send mediasoup notification: ' + error);
  63.             });
  64.     });
  65.  
  66.     room.on('newpeer', (peer) => {
  67.         $log.debug(
  68.             'room "newpeer" event [name:"' + peer.name + '", peer=' + peer);
  69.  
  70.         // this._handlePeer(peer);
  71.     });
  72.  
  73.  
  74.     room.join(peerName, {displayName, device})
  75.         .then((peers) => {
  76.  
  77.  
  78.  
  79.  
  80.  
  81.             // Create Transport for sending.
  82.             sendTransport = room.createTransport('send', {media: 'SEND_MIC_WEBCAM'});
  83.  
  84.             sendTransport.on('close', (originator) => {
  85.                 $log.debug(
  86.                     'Transport "close" event [originator:' + originator + ']');
  87.             });
  88.  
  89.             // Create Transport for receiving.
  90.             recvTransport = room.createTransport('recv', {media: 'RECV'});
  91.  
  92.             recvTransport.on('close', (originator) => {
  93.                 $log.debug(
  94.                     'receiving Transport "close" event [originator:' + originator + ']');
  95.             });
  96.  
  97.             // Handle Peers already in to the Room.
  98.             for (const peer of peers) {
  99.                 //ToDo
  100.                 //  handlePeer(peer);
  101.             }
  102.  
  103.         })
  104.         .then(() => {
  105.             return navigator.mediaDevices.getUserMedia(
  106.                 {
  107.                     audio: true
  108.                 });
  109.         })
  110.         .then((stream) => {
  111.             const audioTrack = stream.getAudioTracks()[0];
  112.  
  113.             // Create Producers for audio and video.
  114.             const audioProducer = room.createProducer(audioTrack,null, { source: 'mic' });
  115.  
  116.             audioTrack.stop();
  117.  
  118.             //$rootScope.$emit('rtc-service-localStream', stream);
  119.             //$rootScope.$emit('rtc-service-remoteStream', stream);
  120.  
  121.             // Send our audio.
  122.             audioProducer.send(sendTransport)
  123.                 .then(() => console.log('sending our mic'))
  124.                 .catch((error) => {
  125.                     $log.error("audio send error: " + error)});
  126.  
  127.         })
  128.         .catch((error) => {
  129.             $log.error('join room  failed: ' + error);
  130.         });
  131.  
  132.         setTimeout(function() {
  133.         navigator.mediaDevices.getUserMedia(
  134.         {
  135.             video: true
  136.         })
  137.         .then((videostream) => {
  138.             const videoTrack = videostream.getVideoTracks()[0];
  139.  
  140.             // Create Producers for audio and video.
  141.             const videoProducer = room.createProducer(videoTrack,null, { source: 'webcam' });;
  142.             videoTrack.stop();
  143.  
  144.             // Send our video.
  145.             videoProducer.send(sendTransport)
  146.                 .then(() => console.log('sending our webcam'))
  147.                 .catch((error) => {
  148.                     $log.error("video send error:" + error)});
  149.         })
  150.         }, 5000);
  151.  
  152. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement