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.

LocalStream.js 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //var StreamEventTypes = require("../../service/RTC/StreamEventTypes.js");
  2. function LocalStream(stream, type, eventEmitter)
  3. {
  4. this.stream = stream;
  5. this.eventEmitter = eventEmitter;
  6. this.type = type;
  7. var self = this;
  8. this.stream.onended = function()
  9. {
  10. self.streamEnded();
  11. };
  12. }
  13. LocalStream.prototype.streamEnded = function () {
  14. this.eventEmitter.emit(StreamEventTypes.EVENT_TYPE_LOCAL_ENDED, this);
  15. }
  16. LocalStream.prototype.getOriginalStream = function()
  17. {
  18. return this.stream;
  19. }
  20. LocalStream.prototype.isAudioStream = function () {
  21. return (this.stream.getAudioTracks() && this.stream.getAudioTracks().length > 0);
  22. }
  23. LocalStream.prototype.mute = function()
  24. {
  25. var ismuted = false;
  26. var tracks = [];
  27. if(this.type = "audio")
  28. {
  29. tracks = this.stream.getAudioTracks();
  30. }
  31. else
  32. {
  33. tracks = this.stream.getVideoTracks();
  34. }
  35. for (var idx = 0; idx < tracks.length; idx++) {
  36. ismuted = !tracks[idx].enabled;
  37. tracks[idx].enabled = !tracks[idx].enabled;
  38. }
  39. return ismuted;
  40. }
  41. LocalStream.prototype.isMuted = function () {
  42. var tracks = [];
  43. if(this.type = "audio")
  44. {
  45. tracks = this.stream.getAudioTracks();
  46. }
  47. else
  48. {
  49. tracks = this.stream.getVideoTracks();
  50. }
  51. for (var idx = 0; idx < tracks.length; idx++) {
  52. if(tracks[idx].enabled)
  53. return false;
  54. }
  55. return true;
  56. }
  57. module.exports = LocalStream;