web.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. //应模块主要作用是 ws链接进行,发送到解码模块
  2. //了解当前模块请搜索关键字 》》》TDDE《《《 了解注意注释
  3. (function() {
  4. var e = {}.hasOwnProperty,
  5. t = function(t, r) {
  6. function o() {
  7. this.constructor = t
  8. }
  9. for (var n in r) e.call(r, n) && (t[n] = r[n]);
  10. return o.prototype = r.prototype, t.prototype = new o, t.__super__ = r.prototype, t
  11. };
  12. AV.WebSocketSource = function(e) {
  13. function r(e, t) {
  14. return this.serverUrl = e, this.fileName = t, "undefined" == typeof WebSocket || null === WebSocket ? this.emit(
  15. "error", "此浏览器不支持WebSocket.") : (this.socket = new WebSocket(this.serverUrl), null ==
  16. this.socket.binaryType ? (this.socket.close(), this.emit("error",
  17. "此浏览器不支持二进制WebSocket.")) : (this.bytesLoaded = 0, this._setupSocket(), void 0))
  18. }
  19. return t(r, e), r.prototype.start = function() {
  20. return this._send(JSON.stringify({
  21. resume: !0
  22. }))
  23. }, r.prototype.pause = function() {
  24. return
  25. }, r.prototype.reset = function() {
  26. return this._send(JSON.stringify({
  27. reset: !0
  28. }))
  29. }, r.prototype._send = function(e) {
  30. return this.open ? this.socket.send(e) : this._bufferMessage = e
  31. }, r.prototype._setupSocket = function() {
  32. var e = this;
  33. return this.socket.binaryType = "arraybuffer",
  34. this.socket.onopen = function() {
  35. return e.open = !0, e.fileName && e.socket.send(JSON.stringify({
  36. fileName: e.fileName
  37. })), e._bufferMessage ? (e.socket.send(e._bufferMessage), e._bufferMessage = null) : void 0
  38. },
  39. this.socket.onmessage = function(t) {
  40. var r, o;
  41. r = new AV.Buffer(new Uint8Array(o))
  42. var se = t.data
  43. console.log('打印se===============',se,t);
  44. //TDDE 这里是发送每一帧到decode
  45. // console.log("这里是发送每一帧到decode",new Uint8Array(se));
  46. if (new Uint8Array(se)[0] == 0) {
  47. var messageData = new Uint8Array(se)
  48. player.decode(messageData); //视频播放
  49. // console.log('黄飞5')
  50. return
  51. } else if (new Uint8Array(se)[1] == 241) {
  52. return o = t.data, "string" != typeof o ? (r = new AV.Buffer(new Uint8Array(o)), e.bytesLoaded += r.length, e.length &&
  53. e.emit("progress", 100 * (e.bytesLoaded / e.length)), e.emit("data", r)) : (o = JSON.parse(o), null != o.fileSize ?
  54. e.length = o.fileSize : null != o.error ? e.emit("error", o.error) : o.end ? e.socket.close() : void 0)
  55. } else {
  56. var ssep = JSON.parse(se)
  57. if (ssep.errorCode == 8006) {
  58. alert(ssep.errorMsg)
  59. } else if (ssep.errorCode == 8007) {
  60. alert(ssep.errorMsg)
  61. } else if (ssep.errorCode == 8008) {
  62. alert(ssep.errorMsg)
  63. } else if (ssep.errorCode == 8009) {
  64. alert(ssep.errorMsg)
  65. } else if (ssep.errorCode == 8010) {
  66. alert(ssep.errorMsg)
  67. } else if (ssep.errorCode == 8003) {
  68. console.log("分享过期啦========")
  69. $(".leftmains").css({
  70. "right": "0"
  71. })
  72. $('.leftmains').show()
  73. $('.bottommains').show()
  74. $('#btnMuted').show()
  75. alert(ssep.errorMsg)
  76. }
  77. }
  78. }, this.socket.onclose = function(t) {
  79. // console.log('黄飞5')
  80. return e.open = !1, t.wasClean ? e.emit("end") : e.emit("error", "WebSocket closed uncleanly with code " + t.code +
  81. ".")
  82. }, this.socket.onerror = function(t) {
  83. alert("你访问的屏幕已经过期")
  84. console.log('黄飞>>>6', t)
  85. return e.emit("error", t)
  86. }
  87. }, r
  88. }(AV.EventEmitter), AV.Asset.fromWebSocket = function(e, t) {
  89. var r;
  90. console.log('黄飞1')
  91. return r = new AV.WebSocketSource(e, t), new AV.Asset(r)
  92. }, AV.Player.fromWebSocket = function(e, t) {
  93. var r;
  94. console.log('黄飞2')
  95. return r = AV.Asset.fromWebSocket(e, t), new AV.Player(r)
  96. }
  97. }).call(this);