You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MediaStream.js 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. ////These lines should be uncommented when require works in app.js
  2. //var RTCBrowserType = require("../../service/RTC/RTCBrowserType.js");
  3. //var StreamEventTypes = require("../../service/RTC/StreamEventTypes.js");
  4. //var MediaStreamType = require("../../service/RTC/MediaStreamTypes");
  5. /**
  6. * Creates a MediaStream object for the given data, session id and ssrc.
  7. * It is a wrapper class for the MediaStream.
  8. *
  9. * @param data the data object from which we obtain the stream,
  10. * the peerjid, etc.
  11. * @param sid the session id
  12. * @param ssrc the ssrc corresponding to this MediaStream
  13. *
  14. * @constructor
  15. */
  16. function MediaStream(data, sid, ssrc, eventEmmiter, browser) {
  17. this.sid = sid;
  18. this.stream = data.stream;
  19. this.peerjid = data.peerjid;
  20. this.ssrc = ssrc;
  21. this.type = (this.stream.getVideoTracks().length > 0)?
  22. MediaStreamType.VIDEO_TYPE : MediaStreamType.AUDIO_TYPE;
  23. this.muted = false;
  24. eventEmmiter.emit(StreamEventTypes.EVENT_TYPE_REMOTE_CREATED, this);
  25. if(browser == RTCBrowserType.RTC_BROWSER_FIREFOX)
  26. {
  27. if (!this.getVideoTracks)
  28. this.getVideoTracks = function () { return []; };
  29. if (!this.getAudioTracks)
  30. this.getAudioTracks = function () { return []; };
  31. }
  32. }
  33. MediaStream.prototype.getOriginalStream = function()
  34. {
  35. return this.stream;
  36. }
  37. MediaStream.prototype.setMute = function (value)
  38. {
  39. this.stream.muted = value;
  40. this.muted = value;
  41. }
  42. module.exports = MediaStream;