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.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. if(type == "audio")
  9. {
  10. this.getTracks = function () {
  11. return self.stream.getAudioTracks();
  12. };
  13. }
  14. else
  15. {
  16. this.getTracks = function () {
  17. return self.stream.getVideoTracks();
  18. };
  19. }
  20. this.stream.onended = function()
  21. {
  22. self.streamEnded();
  23. };
  24. }
  25. LocalStream.prototype.streamEnded = function () {
  26. this.eventEmitter.emit(StreamEventTypes.EVENT_TYPE_LOCAL_ENDED, this);
  27. }
  28. LocalStream.prototype.getOriginalStream = function()
  29. {
  30. return this.stream;
  31. }
  32. LocalStream.prototype.isAudioStream = function () {
  33. return (this.stream.getAudioTracks() && this.stream.getAudioTracks().length > 0);
  34. };
  35. LocalStream.prototype.mute = function()
  36. {
  37. var ismuted = false;
  38. var tracks = this.getTracks();
  39. for (var idx = 0; idx < tracks.length; idx++) {
  40. ismuted = !tracks[idx].enabled;
  41. tracks[idx].enabled = ismuted;
  42. }
  43. return ismuted;
  44. };
  45. LocalStream.prototype.setMute = function(mute)
  46. {
  47. var tracks = this.getTracks();
  48. for (var idx = 0; idx < tracks.length; idx++) {
  49. tracks[idx].enabled = mute;
  50. }
  51. };
  52. LocalStream.prototype.isMuted = function () {
  53. var tracks = [];
  54. if(this.type == "audio")
  55. {
  56. tracks = this.stream.getAudioTracks();
  57. }
  58. else
  59. {
  60. tracks = this.stream.getVideoTracks();
  61. }
  62. for (var idx = 0; idx < tracks.length; idx++) {
  63. if(tracks[idx].enabled)
  64. return false;
  65. }
  66. return true;
  67. }
  68. LocalStream.prototype.getId = function () {
  69. return this.stream.getTracks()[0].id;
  70. }
  71. module.exports = LocalStream;