AlexWang

t push -u origin master

不能预览此文件类型
  1 +<!DOCTYPE html><html><head><meta charset="UTF-8"><title>UMD PLAYGROUND</title></head><body><div id="stage"></div><script type="text/javascript" src="main.js"></script></body></html>
  1 +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.share=t():e.share=t()}(this,function(){return function(e){function t(n){if(_[n])return _[n].exports;var a=_[n]={exports:{},id:n,loaded:!1};return e[n].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var _={};return t.m=e,t.c=_,t.p="",t(0)}([function(e,t,_){e.exports=_(2)},function(e,t){"use strict";function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var _=0;_<t.length;_++){var n=t[_];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,_,n){return _&&e(t.prototype,_),n&&e(t,n),t}}(),a=function(){function e(){_(this,e),this.MAPS={}}return n(e,[{key:"on",value:function(e,t){if(e&&t){var _=this.MAPS[e];if(!_)return this.MAPS[e]=[t];_.push(t)}}},{key:"off",value:function(e,t){if(e){var _=this.MAPS[e];if(_){if(t)return _.splice(_.indexOf(t),1);_.length=0}}}},{key:"emit",value:function(e,t){if(e){var _=this.MAPS["*"];_&&_.length&&_.forEach(function(_){_(e,t)});var n=this.MAPS[e];n&&n.length&&n.forEach(function(e){e(t)})}}}]),e}();t.default=a},function(e,t,_){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e){var t,_,n,a;n=e.length,t=new Uint8Array(3*n);var r=0;for(_=0;_<n;_++)a=e.charCodeAt(_),a>=1&&a<=127?t[r++]=a:a>2047?(t[r++]=224|a>>12&15,t[r++]=128|a>>6&63,t[r++]=128|a>>0&63):(t[r++]=192|a>>6&31,t[r++]=128|a>>0&63);return new Uint8Array(t.buffer,0,r)}function r(e){var t,_,n,a,r,o;for(t="",n=e.length,_=0;_<n;)switch(a=e[_++],a>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:t+=String.fromCharCode(a);break;case 12:case 13:r=e[_++],t+=String.fromCharCode((31&a)<<6|63&r);break;case 14:r=e[_++],o=e[_++],t+=String.fromCharCode((15&a)<<12|(63&r)<<6|(63&o)<<0)}return t}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",_=new Object;if(_.data_len=0,_.data="",_.name=e,"mov_start"==e)_.type=1;else if("mov_stop"==e)_.type=2;else if("mov_pause"==e){if(_.type=3,pos=t,pos.length>0){_.data_len=4;var n=new ArrayBuffer(_.data_len),r=new Uint32Array(n,0,1);r[0]=parseInt(pos),_.data=new Uint8Array(n,0,4)}}else if("mov_resume"==e)_.type=4;else if("mov_seek"==e){if(_.type=5,pos=t,pos.length>0){_.data_len=4;var n=new ArrayBuffer(_.data_len),r=new Uint32Array(n,0,1);r[0]=parseInt(pos),_.data=new Uint8Array(n,0,4)}}else if("ss_start"==e)_.type=6,_.data=a(t),_.data_len=_.data.length;else if("ss_stop"==e)_.type=7;else if("ss_version"==e)_.type=14;else if("get_mic"==e)_.type=26;else{if("ds_start"==e){_.type=27,_.data_len=536;var n=new ArrayBuffer(_.data_len),o=new Uint32Array(n,0,6);coordstr=t;var i=coordstr.split(",");if(4!=i.length)return;o[0]=parseInt(i[0]),o[1]=parseInt(i[1]),o[2]=parseInt(i[2]),o[3]=parseInt(i[3]);var s=new Uint8Array(n,24,256);window_name=t;for(var S=a(window_name),E=0;E<S.length;E++)s[E]=S[E];o[4]=S.length,o[5]=0;new Uint8Array(n,280,256);return _.data=new Uint8Array(n,0,_.data_len),void A(_)}if("ds_stop"==e)_.type=28;else{if("aud_start"==e){_.type=29,_.data_len=520;var n=new ArrayBuffer(_.data_len),l=new Uint32Array(n,0,1),C=t;l[0]=C.length;var f=new Uint32Array(n,4,1);f[0]=0;for(var c=new Uint8Array(n,8,256),O=a(C),E=0;E<O.length;E++)c[E]=O[E];new Uint8Array(n,264,256);return _.data=new Uint8Array(n,0,_.data_len),void A(_)}if("aud_stop"==e)_.type=30;else if("get_cam"==e)_.type=41;else{if("cam_start"==e){_.type=42,_.data_len=520;var n=new ArrayBuffer(_.data_len),I=new Uint32Array(n,0,1),T=t;I[0]=T.length;var f=new Uint32Array(n,4,1);f[0]=0;for(var U=new Uint8Array(n,8,256),u=a(T),E=0;E<u.length;E++)U[E]=u[E];new Uint8Array(n,264,256);return _.data=new Uint8Array(n,0,_.data_len),void A(_)}"cam_stop"==e?_.type=43:"set_videoparam"==e?(_.type=46,_.data=a(t),_.data_len=_.data.length):"get_videoparam"==e?(_.type=47,_.data=a(t),_.data_len=_.data.length):"start_record"==e?(_.type=48,_.data=a(t),_.data_len=_.data.length):"stop_record"==e?(_.type=49,_.data=a(t),_.data_len=_.data.length):"start_push"==e?(_.type=50,_.data=a(t),_.data_len=_.data.length):"stop_push"==e?(_.type=51,_.data=a(t),_.data_len=_.data.length):"get_rtmp_port"==e?_.type=52:"set_mic_vol"==e?(_.type=53,_.data=a(t),_.data_len=_.data.length):"get_mic_vol"==e&&(_.type=54)}}}A(_)}function A(e){var t=8+e.data_len,_=new ArrayBuffer(t),n=new Uint16Array(_,0,1),a=new Uint8Array(_,2,1),r=new Uint32Array(_,4,1);if(n[0]=e.type,a[0]=0,r[0]=e.data_len,e.data_len>0)for(var o=new Uint8Array(_,8,e.data_len),A=0;A<e.data_len;A++)o[A]=e.data[A];R&&R.send(_)}function i(){try{R&&(R.close(),R=R.onopen=R.onclose=R.onerror=R.onmessage=null,C.emit(C.CLOSE))}catch(e){console.log(e)}}function s(){i()}function S(){R&&i(),R=new WebSocket("ws://"+p+":"+L),g=setTimeout(function(){clearTimeout(g),i()},1500),R.timeout=1500,R.binaryType="arraybuffer",R.onopen=function(){clearTimeout(g),o("get_rtmp_port"),o("get_mic"),o("get_cam"),o("get_mic_vol"),C.emit(C.OPEN)},R.onclose=function(){i()},R.onerror=function(){i()},R.onmessage=function(e){var t=e.data;if("string"==typeof e.data)console.log("on message [string] ignore.");else{var _=new DataView(t),n=_.getUint16(0,!0);console.log("onmessage code->",n);var a=(_.getUint8(2,!0),_.getUint32(4,!0));if(n>=0&&n<f.length){f[n]}if(0==n||6==n||8==n)console.log("mov_start,mov_pause,mov_seek success");else if(10==n){if(a>36){var o=new Uint32Array(t,8,8),A="width:"+o[0]+" height:"+o[1];A="framerate:"+o[2]+" duration:"+o[3],A="playpos:"+o[4]+" filesize:"+o[5],c=A;var i=o[6],s=new Uint8Array(t,40,i),S=r(s);c.filename=S,C.emit(C.MOVIE_INFO_CHANGE,c)}}else if(11==n)console.log("ss_start success"),C.emit(C.SS_START);else if(24<=n&&26>=n){if(a>=4){var E=_.getUint32(8,!0);O=E.toString(),C.emit(C.VERSION_INFO_CHANGE,O)}}else if(55==n)console.log("ds_start success");else if(59==n)console.log("as start success");else if(83==n){if(console.log("get camera sucess"),a>4){var l=_.getUint32(8,!0),R=12;I.length=0;for(var p=0;p<l;p++){var L=_.getUint32(R,!0);R+=4;var g=new Uint8Array(t,R,L-1);R+=L;var y=r(g);I.push(y)}C.emit(C.CAMERA_INFO_CHANGE,I)}}else if(53==n){if(a>4){var v=_.getUint32(8,!0),R=12;T.length=0;for(var p=0;p<v;p++){var M=_.getUint32(R,!0);R+=4;var P=new Uint8Array(t,R,M-1);R+=M;var y=r(P);T.push(y)}C.emit(C.MIC_INFO_CHANGE,T)}}else if(85==n)console.log("cam_share success");else if(95==n){console.log("get_videoparam success");var N=new Uint8Array(t,8,t.byteLength-8-1),y=r(N);U=y,C.emit(C.VIDEO_INFO_CHANGE,U)}else if(105==n){console.log("get_rtmp_port_success");var N=new Uint8Array(t,8,t.byteLength-8-1),y=r(N);u=y,C.emit(C.RTMP_PORT_CHANGE,u)}else if(109==n){console.log("get_mic_vol success");var N=new Uint8Array(t,8,t.byteLength-8-1),y=r(N);d=y,C.emit(C.MIC_VOL_CHANGE,d)}else if(111<=n&&114>=n){var N=new Uint8Array(t,8,t.byteLength-8),V=r(N);console.log("url->",V)}else if(13==n)C.emit(C.SS_STOP);else{var N=new Uint8Array(t,8,t.byteLength-8),y=r(N);console.log("data ->",y)}}}}Object.defineProperty(t,"__esModule",{value:!0});var E=_(1),l=n(E),C=new l.default,f=["MOV_START_SUC","MOV_START_FAIL","MOV_STOP_SUC","MOV_STOP_FAIL","MOV_PAUSE_SUC","MOV_PAUSE_FAIL","MOV_RESUME_SUC","MOV_RESUME_FAIL","MOV_SEEK_SUC","MOV_SEEK_FAIL","MOV_PROPERTY","SS_START_SUC","SS_START_FAIL","SS_STOP_SUC","SS_STOP_FAIL","REC_START_SUC","REC_START_FAIL","REC_STOP_SUC","REC_STOP_FAIL","REC_PAUSE_SUC","REC_PAUSE_FAIL","REC_RESUME_SUC","REC_RESUME_FAIL","MOV_PLAY_FINISH","MOV_VERSION","SS_VERSION","REC_VERSION","MOV_SELECT_FILE_CANCEL","QAV_LOGIN_SUC","QAV_LOGIN_FAIL","QAV_LOGOUT_SUC","QAV_LOGOUT_FAIL","QAV_ENTERROOM_SUC","QAV_ENTERROOM_FAIL","QAV_LEAVEROOM_SUC","QAV_LEAVEROOM_FAIL","QAV_OPEN_MIC_SUC","QAV_OPEN_MIC_FAIL","QAV_OPEN_MIC_NODEV","QAV_CLOSE_MIC_SUC","QAV_CLOSE_MIC_FAIL","QAV_CLOSE_MIC_NODEV","QAV_OPEN_PLAYER_SUC","QAV_OPEN_PLAYER_FAIL","QAV_OPEN_PLAYER_NODEV","QAV_CLOSE_PLAYER_SUC","QAV_CLOSE_PLAYER_FAIL","QAV_CLOSE_PLAYER_NODEV","QAV_MUTE_AUDIO_SUC","QAV_MUTE_AUDIO_FAIL","QAV_UNMUTE_AUDIO_SUC","QAV_UNMUTE_AUDIO_FAIL","REC_SAVE_FILE_CANCEL","GET_MIC_SUC","GET_MIC_FAIL","DS_START_SUC","DS_START_FAIL","DS_STOP_SUC","DS_STOP_FAIL","AUD_START_SUC","AUD_START_FAIL","AUD_STOP_SUC","AUD_STOP_FAIL","AUD_DATA","SS_DATA","MOV_DATA","PEN_START_SUC","PEN_START_FAIL","PEN_STOP_SUC","PEN_STOP_FAIL","PEN_VERSION","QAV_DEVICE_SUC","QAV_DEVICE_FAIL","CBD_QUERY_SUC","CBD_QUERY_FAIL","CBD_GET_SUC","CBD_GET_FAIL","FILE_GET_SUC","FILE_GET_FAIL","FILE_SET_SUC","FILE_SET_FAIL","RESTART_SUC","RESTART_FAIL","GET_CAM_SUC","GET_CAM_FAIL","CAM_START_SUC","CAM_START_FAIL","CAM_STOP_SUC","CAM_STOP_FAIL","SWITCH_SCENE_SUC","SWITCH_SCENE_FAIL","PUSH_STREAM_FAIL","SHOW_UI_SUC","SET_VIDEO_PARAM_SUC","SET_VIDEO_PARAM_FAIL","GET_VIDEO_PARAM_SUC","GET_VIDEO_PARAM_FAIL","START_RECORD_SUC","START_RECORD_FAIL","STOP_RECORD_SUC","STOP_RECORD_FAIL","START_PUSH_SUC","START_PUSH_FAIL","STOP_PUSH_SUC","STOP_PUSH_FAIL","GET_RTMP_PORT_SUC","GET_RTMP_PORT_FAIL","SET_MIC_VOL_SUC","SET_MIC_VOL_FAIL","GET_MIC_VOL_SUC","GET_MIC_VOL_FAIL","RTMP_CONNECTING","RTMP_CONNECT_SUC","RTMP_CONNECT_FAIL","RTMP_CONNECT_CLOSED"],c=null,O="",I=[],T=[],U="",u="",d="",R=null,p="127.0.0.1",L=8090,g=0;C.infos={movieInfo:c,versionInfo:O,cameraInfo:I,micInfo:T,videoInfo:U,rtmpPort:u,micVol:d},C.MOVIE_INFO_CHANGE="MOVIE_INFO_CHANGE",C.VERSION_INFO_CHANGE="VERSION_INFO_CHANGE",C.CAMERA_INFO_CHANGE="CAMERA_INFO_CHANGE",C.MIC_INFO_CHANGE="MIC_INFO_CHANGE",C.VIDEO_INFO_CHANGE="VIDEO_INFO_CHANGE",C.RTMP_PORT_CHANGE="RTMP_PORT_CHANGE",C.MIC_VOL_CHANGE="MIC_VOL_CHANGE",C.SS_START="SS_START",C.SS_STOP="SS_STOP",C.OPEN="OPEN",C.CLOSE="CLOSE",C.ERROR="ERROR",C.getRTMPPort=function(){o("get_rtmp_port")},C.getMicInfo=function(){o("get_mic")},C.getCamInfo=function(){o("get_cam")},C.getMicVol=function(){o("get_mic_vol")},C.start=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"127.0.0.1",t=arguments[1];p=e,L=t,S()},C.stop=function(){s()},C.startShareScreen=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";o("ss_start",e)},C.stopShareScreen=function(){o("ss_stop")},t.default=C}])});
  1 +<!DOCTYPE html><html><head><meta charset="UTF-8"><title>UMD PLAYGROUND</title></head><body><div id="stage"></div><script type="text/javascript" src="test.js"></script></body></html>
  1 +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.share=t():e.share=t()}(this,function(){return function(e){function t(n){if(_[n])return _[n].exports;var a=_[n]={exports:{},id:n,loaded:!1};return e[n].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var _={};return t.m=e,t.c=_,t.p="",t(0)}([function(e,t,_){e.exports=_(3)},function(e,t){"use strict";function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var _=0;_<t.length;_++){var n=t[_];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,_,n){return _&&e(t.prototype,_),n&&e(t,n),t}}(),a=function(){function e(){_(this,e),this.MAPS={}}return n(e,[{key:"on",value:function(e,t){if(e&&t){var _=this.MAPS[e];if(!_)return this.MAPS[e]=[t];_.push(t)}}},{key:"off",value:function(e,t){if(e){var _=this.MAPS[e];if(_){if(t)return _.splice(_.indexOf(t),1);_.length=0}}}},{key:"emit",value:function(e,t){if(e){var _=this.MAPS["*"];_&&_.length&&_.forEach(function(_){_(e,t)});var n=this.MAPS[e];n&&n.length&&n.forEach(function(e){e(t)})}}}]),e}();t.default=a},function(e,t,_){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e){var t,_,n,a;n=e.length,t=new Uint8Array(3*n);var r=0;for(_=0;_<n;_++)a=e.charCodeAt(_),a>=1&&a<=127?t[r++]=a:a>2047?(t[r++]=224|a>>12&15,t[r++]=128|a>>6&63,t[r++]=128|a>>0&63):(t[r++]=192|a>>6&31,t[r++]=128|a>>0&63);return new Uint8Array(t.buffer,0,r)}function r(e){var t,_,n,a,r,o;for(t="",n=e.length,_=0;_<n;)switch(a=e[_++],a>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:t+=String.fromCharCode(a);break;case 12:case 13:r=e[_++],t+=String.fromCharCode((31&a)<<6|63&r);break;case 14:r=e[_++],o=e[_++],t+=String.fromCharCode((15&a)<<12|(63&r)<<6|(63&o)<<0)}return t}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",_=new Object;if(_.data_len=0,_.data="",_.name=e,"mov_start"==e)_.type=1;else if("mov_stop"==e)_.type=2;else if("mov_pause"==e){if(_.type=3,pos=t,pos.length>0){_.data_len=4;var n=new ArrayBuffer(_.data_len),r=new Uint32Array(n,0,1);r[0]=parseInt(pos),_.data=new Uint8Array(n,0,4)}}else if("mov_resume"==e)_.type=4;else if("mov_seek"==e){if(_.type=5,pos=t,pos.length>0){_.data_len=4;var n=new ArrayBuffer(_.data_len),r=new Uint32Array(n,0,1);r[0]=parseInt(pos),_.data=new Uint8Array(n,0,4)}}else if("ss_start"==e)_.type=6,_.data=a(t),_.data_len=_.data.length;else if("ss_stop"==e)_.type=7;else if("ss_version"==e)_.type=14;else if("get_mic"==e)_.type=26;else{if("ds_start"==e){_.type=27,_.data_len=536;var n=new ArrayBuffer(_.data_len),o=new Uint32Array(n,0,6);coordstr=t;var A=coordstr.split(",");if(4!=A.length)return;o[0]=parseInt(A[0]),o[1]=parseInt(A[1]),o[2]=parseInt(A[2]),o[3]=parseInt(A[3]);var s=new Uint8Array(n,24,256);window_name=t;for(var S=a(window_name),l=0;l<S.length;l++)s[l]=S[l];o[4]=S.length,o[5]=0;new Uint8Array(n,280,256);return _.data=new Uint8Array(n,0,_.data_len),void i(_)}if("ds_stop"==e)_.type=28;else{if("aud_start"==e){_.type=29,_.data_len=520;var n=new ArrayBuffer(_.data_len),E=new Uint32Array(n,0,1),f=t;E[0]=f.length;var c=new Uint32Array(n,4,1);c[0]=0;for(var C=new Uint8Array(n,8,256),O=a(f),l=0;l<O.length;l++)C[l]=O[l];new Uint8Array(n,264,256);return _.data=new Uint8Array(n,0,_.data_len),void i(_)}if("aud_stop"==e)_.type=30;else if("get_cam"==e)_.type=41;else{if("cam_start"==e){_.type=42,_.data_len=520;var n=new ArrayBuffer(_.data_len),u=new Uint32Array(n,0,1),T=t;u[0]=T.length;var c=new Uint32Array(n,4,1);c[0]=0;for(var I=new Uint8Array(n,8,256),U=a(T),l=0;l<U.length;l++)I[l]=U[l];new Uint8Array(n,264,256);return _.data=new Uint8Array(n,0,_.data_len),void i(_)}"cam_stop"==e?_.type=43:"set_videoparam"==e?(_.type=46,_.data=a(t),_.data_len=_.data.length):"get_videoparam"==e?(_.type=47,_.data=a(t),_.data_len=_.data.length):"start_record"==e?(_.type=48,_.data=a(t),_.data_len=_.data.length):"stop_record"==e?(_.type=49,_.data=a(t),_.data_len=_.data.length):"start_push"==e?(_.type=50,_.data=a(t),_.data_len=_.data.length):"stop_push"==e?(_.type=51,_.data=a(t),_.data_len=_.data.length):"get_rtmp_port"==e?_.type=52:"set_mic_vol"==e?(_.type=53,_.data=a(t),_.data_len=_.data.length):"get_mic_vol"==e&&(_.type=54)}}}i(_)}function i(e){var t=8+e.data_len,_=new ArrayBuffer(t),n=new Uint16Array(_,0,1),a=new Uint8Array(_,2,1),r=new Uint32Array(_,4,1);if(n[0]=e.type,a[0]=0,r[0]=e.data_len,e.data_len>0)for(var o=new Uint8Array(_,8,e.data_len),i=0;i<e.data_len;i++)o[i]=e.data[i];R&&R.send(_)}function A(){try{R&&(R.close(),R=R.onopen=R.onclose=R.onerror=R.onmessage=null,f.emit(f.CLOSE))}catch(e){console.log(e)}}function s(){A()}function S(){R&&A(),R=new WebSocket("ws://"+g+":"+p),L=setTimeout(function(){clearTimeout(L),A()},1500),R.timeout=1500,R.binaryType="arraybuffer",R.onopen=function(){clearTimeout(L),o("get_rtmp_port"),o("get_mic"),o("get_cam"),o("get_mic_vol"),f.emit(f.OPEN)},R.onclose=function(){A()},R.onerror=function(){A()},R.onmessage=function(e){var t=e.data;if("string"==typeof e.data)console.log("on message [string] ignore.");else{var _=new DataView(t),n=_.getUint16(0,!0);console.log("onmessage code->",n);var a=(_.getUint8(2,!0),_.getUint32(4,!0));if(n>=0&&n<c.length){c[n]}if(0==n||6==n||8==n)console.log("mov_start,mov_pause,mov_seek success");else if(10==n){if(a>36){var o=new Uint32Array(t,8,8),i="width:"+o[0]+" height:"+o[1];i="framerate:"+o[2]+" duration:"+o[3],i="playpos:"+o[4]+" filesize:"+o[5],C=i;var A=o[6],s=new Uint8Array(t,40,A),S=r(s);C.filename=S,f.emit(f.MOVIE_INFO_CHANGE,C)}}else if(11==n)console.log("ss_start success"),f.emit(f.SS_START);else if(24<=n&&26>=n){if(a>=4){var l=_.getUint32(8,!0);O=l.toString(),f.emit(f.VERSION_INFO_CHANGE,O)}}else if(55==n)console.log("ds_start success");else if(59==n)console.log("as start success");else if(83==n){if(console.log("get camera sucess"),a>4){var E=_.getUint32(8,!0),R=12;u.length=0;for(var g=0;g<E;g++){var p=_.getUint32(R,!0);R+=4;var L=new Uint8Array(t,R,p-1);R+=p;var y=r(L);u.push(y)}f.emit(f.CAMERA_INFO_CHANGE,u)}}else if(53==n){if(a>4){var P=_.getUint32(8,!0),R=12;T.length=0;for(var g=0;g<P;g++){var v=_.getUint32(R,!0);R+=4;var M=new Uint8Array(t,R,v-1);R+=v;var y=r(M);T.push(y)}f.emit(f.MIC_INFO_CHANGE,T)}}else if(85==n)console.log("cam_share success");else if(95==n){console.log("get_videoparam success");var N=new Uint8Array(t,8,t.byteLength-8-1),y=r(N);I=y,f.emit(f.VIDEO_INFO_CHANGE,I)}else if(105==n){console.log("get_rtmp_port_success");var N=new Uint8Array(t,8,t.byteLength-8-1),y=r(N);U=y,f.emit(f.RTMP_PORT_CHANGE,U)}else if(109==n){console.log("get_mic_vol success");var N=new Uint8Array(t,8,t.byteLength-8-1),y=r(N);d=y,f.emit(f.MIC_VOL_CHANGE,d)}else if(111<=n&&114>=n){var N=new Uint8Array(t,8,t.byteLength-8),V=r(N);console.log("url->",V)}else if(13==n)f.emit(f.SS_STOP);else{var N=new Uint8Array(t,8,t.byteLength-8),y=r(N);console.log("data ->",y)}}}}Object.defineProperty(t,"__esModule",{value:!0});var l=_(1),E=n(l),f=new E.default,c=["MOV_START_SUC","MOV_START_FAIL","MOV_STOP_SUC","MOV_STOP_FAIL","MOV_PAUSE_SUC","MOV_PAUSE_FAIL","MOV_RESUME_SUC","MOV_RESUME_FAIL","MOV_SEEK_SUC","MOV_SEEK_FAIL","MOV_PROPERTY","SS_START_SUC","SS_START_FAIL","SS_STOP_SUC","SS_STOP_FAIL","REC_START_SUC","REC_START_FAIL","REC_STOP_SUC","REC_STOP_FAIL","REC_PAUSE_SUC","REC_PAUSE_FAIL","REC_RESUME_SUC","REC_RESUME_FAIL","MOV_PLAY_FINISH","MOV_VERSION","SS_VERSION","REC_VERSION","MOV_SELECT_FILE_CANCEL","QAV_LOGIN_SUC","QAV_LOGIN_FAIL","QAV_LOGOUT_SUC","QAV_LOGOUT_FAIL","QAV_ENTERROOM_SUC","QAV_ENTERROOM_FAIL","QAV_LEAVEROOM_SUC","QAV_LEAVEROOM_FAIL","QAV_OPEN_MIC_SUC","QAV_OPEN_MIC_FAIL","QAV_OPEN_MIC_NODEV","QAV_CLOSE_MIC_SUC","QAV_CLOSE_MIC_FAIL","QAV_CLOSE_MIC_NODEV","QAV_OPEN_PLAYER_SUC","QAV_OPEN_PLAYER_FAIL","QAV_OPEN_PLAYER_NODEV","QAV_CLOSE_PLAYER_SUC","QAV_CLOSE_PLAYER_FAIL","QAV_CLOSE_PLAYER_NODEV","QAV_MUTE_AUDIO_SUC","QAV_MUTE_AUDIO_FAIL","QAV_UNMUTE_AUDIO_SUC","QAV_UNMUTE_AUDIO_FAIL","REC_SAVE_FILE_CANCEL","GET_MIC_SUC","GET_MIC_FAIL","DS_START_SUC","DS_START_FAIL","DS_STOP_SUC","DS_STOP_FAIL","AUD_START_SUC","AUD_START_FAIL","AUD_STOP_SUC","AUD_STOP_FAIL","AUD_DATA","SS_DATA","MOV_DATA","PEN_START_SUC","PEN_START_FAIL","PEN_STOP_SUC","PEN_STOP_FAIL","PEN_VERSION","QAV_DEVICE_SUC","QAV_DEVICE_FAIL","CBD_QUERY_SUC","CBD_QUERY_FAIL","CBD_GET_SUC","CBD_GET_FAIL","FILE_GET_SUC","FILE_GET_FAIL","FILE_SET_SUC","FILE_SET_FAIL","RESTART_SUC","RESTART_FAIL","GET_CAM_SUC","GET_CAM_FAIL","CAM_START_SUC","CAM_START_FAIL","CAM_STOP_SUC","CAM_STOP_FAIL","SWITCH_SCENE_SUC","SWITCH_SCENE_FAIL","PUSH_STREAM_FAIL","SHOW_UI_SUC","SET_VIDEO_PARAM_SUC","SET_VIDEO_PARAM_FAIL","GET_VIDEO_PARAM_SUC","GET_VIDEO_PARAM_FAIL","START_RECORD_SUC","START_RECORD_FAIL","STOP_RECORD_SUC","STOP_RECORD_FAIL","START_PUSH_SUC","START_PUSH_FAIL","STOP_PUSH_SUC","STOP_PUSH_FAIL","GET_RTMP_PORT_SUC","GET_RTMP_PORT_FAIL","SET_MIC_VOL_SUC","SET_MIC_VOL_FAIL","GET_MIC_VOL_SUC","GET_MIC_VOL_FAIL","RTMP_CONNECTING","RTMP_CONNECT_SUC","RTMP_CONNECT_FAIL","RTMP_CONNECT_CLOSED"],C=null,O="",u=[],T=[],I="",U="",d="",R=null,g="127.0.0.1",p=8090,L=0;f.infos={movieInfo:C,versionInfo:O,cameraInfo:u,micInfo:T,videoInfo:I,rtmpPort:U,micVol:d},f.MOVIE_INFO_CHANGE="MOVIE_INFO_CHANGE",f.VERSION_INFO_CHANGE="VERSION_INFO_CHANGE",f.CAMERA_INFO_CHANGE="CAMERA_INFO_CHANGE",f.MIC_INFO_CHANGE="MIC_INFO_CHANGE",f.VIDEO_INFO_CHANGE="VIDEO_INFO_CHANGE",f.RTMP_PORT_CHANGE="RTMP_PORT_CHANGE",f.MIC_VOL_CHANGE="MIC_VOL_CHANGE",f.SS_START="SS_START",f.SS_STOP="SS_STOP",f.OPEN="OPEN",f.CLOSE="CLOSE",f.ERROR="ERROR",f.getRTMPPort=function(){o("get_rtmp_port")},f.getMicInfo=function(){o("get_mic")},f.getCamInfo=function(){o("get_cam")},f.getMicVol=function(){o("get_mic_vol")},f.start=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"127.0.0.1",t=arguments[1];g=e,p=t,S()},f.stop=function(){s()},f.startShareScreen=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";o("ss_start",e)},f.stopShareScreen=function(){o("ss_stop")},t.default=f},function(e,t,_){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(){console.log("发起屏幕"),i.default.startShareScreen("rtmp://123.56.205.116/live/alexwang")}function r(){console.log("关闭屏幕"),i.default.stopShareScreen()}var o=_(2),i=n(o);i.default.on(i.default.SS_START,function(){console.log("SS_START"),setTimeout(function(){r()},200)}),i.default.on(i.default.SS_STOP,function(){console.log("SS_STOP"),setTimeout(function(){a()},500)}),i.default.on(i.default.ERROR,function(){console.log("ERROR")}),i.default.on(i.default.CLOSE,function(){console.log("CLOSE")}),i.default.on(i.default.OPEN,function(){console.log("OPEN"),a()}),i.default.start("192.168.222.216",8090)}])});
@@ -15,7 +15,9 @@ @@ -15,7 +15,9 @@
15 ], 15 ],
16 "author": "AlexWang", 16 "author": "AlexWang",
17 "license": "MIT", 17 "license": "MIT",
18 - "dependencies": {}, 18 + "dependencies": {
  19 + "buffer": "^5.0.6"
  20 + },
19 "wbp": { 21 "wbp": {
20 "project": "umd", 22 "project": "umd",
21 "entries": { 23 "entries": {
@@ -25,4 +27,4 @@ @@ -25,4 +27,4 @@
25 "source": "src/", 27 "source": "src/",
26 "build": "dist/" 28 "build": "dist/"
27 } 29 }
28 -}  
  30 +}
  1 +// //////////////////////////////////////////////////////////////////////////////
  2 +//
  3 +// Copyright (C) 2016-present All Rights Reserved.
  4 +// Licensed under the Apache License, Version 2.0 (the "License");
  5 +// http://www.apache.org/licenses/LICENSE-2.0
  6 +//
  7 +// Github Home: https://github.com/AlexWang1987
  8 +// Author: AlexWang
  9 +// Date: 2017-05-20 11:55:44
  10 +// QQ Email: 1669499355@qq.com
  11 +// Last Modified time: 2017-05-20 11:55:45
  12 +// Description: saas-Emiter
  13 +//
  14 +// //////////////////////////////////////////////////////////////////////////////
  15 +
  16 +export default class Emiter {
  17 + constructor() {
  18 + this.MAPS = {};
  19 + }
  20 + on(eid, elistener) {
  21 + if (eid && elistener) {
  22 + let stub = this.MAPS[eid];
  23 + if (!stub) {
  24 + return this.MAPS[eid] = [elistener];
  25 + }
  26 + stub.push(elistener);
  27 + }
  28 + }
  29 + off(eid, elistener) {
  30 + if (eid) {
  31 + let stub = this.MAPS[eid];
  32 + if (stub) {
  33 + if (elistener) {
  34 + return stub.splice(stub.indexOf(elistener), 1);
  35 + }
  36 + stub.length = 0;
  37 + }
  38 + }
  39 + }
  40 + emit(eid, data) {
  41 + if (eid) {
  42 + //eid=* broadcast
  43 + let asteriskStub = this.MAPS['*'];
  44 + if (asteriskStub && asteriskStub.length) {
  45 + asteriskStub.forEach(function (elistener) {
  46 + elistener(eid, data);
  47 + })
  48 + }
  49 +
  50 + // eid= normal
  51 + let stub = this.MAPS[eid];
  52 + if (stub && stub.length) {
  53 + stub.forEach(function (elistener) {
  54 + elistener(data);
  55 + });
  56 + }
  57 + }
  58 + }
  59 +}
  1 +// //////////////////////////////////////////////////////////////////////////////
  2 +//
  3 +// Copyright (C) 2016-present All Rights Reserved.
  4 +// Licensed under the Apache License, Version 2.0 (the "License");
  5 +// http://www.apache.org/licenses/LICENSE-2.0
  6 +//
  7 +// Github Home: https://github.com/AlexWang1987
  8 +// Author: AlexWang
  9 +// Date: 2016-08-27 22:58:47
  10 +// QQ Email: 1669499355@qq.com
  11 +// Last Modified time: 2017-05-20 11:56:07
  12 +// Description: LiveClass-Loger
  13 +//
  14 +// //////////////////////////////////////////////////////////////////////////////
  15 +
  16 +class Loger {
  17 + constructor(info) {
  18 + this.info = info || '';
  19 + this.id = this.initId();
  20 + }
  21 +
  22 + initId() {
  23 + const infoType = this.info.constructor.name.toLowerCase();
  24 + if (infoType === 'string') {
  25 + return this.info;
  26 + }
  27 + if (infoType === 'object') {
  28 + return this.info.mid || '';
  29 + }
  30 + return '';
  31 + }
  32 +
  33 + log(...msg) {
  34 + this._log(Loger.LOG, msg);
  35 + }
  36 +
  37 + warn(...msg) {
  38 + this._log(Loger.WARN, msg);
  39 + }
  40 +
  41 + error(...msg) {
  42 + this._log(Loger.ERROR, msg);
  43 + }
  44 +
  45 + _log(type, msg) {
  46 + msg = JSON.stringify(msg);
  47 +
  48 + let logMsg = `${this.id} -> ${msg}`;
  49 + if (type >= Loger.logLevel) {
  50 + switch (type) {
  51 + case Loger.LOG:
  52 + console.log(logMsg);
  53 + break;
  54 + case Loger.WARN:
  55 + console.warn(logMsg);
  56 + break;
  57 + case Loger.ERROR:
  58 + console.error(logMsg);
  59 + break;
  60 + }
  61 + }
  62 + }
  63 +}
  64 +
  65 +Loger.LOG = 0;
  66 +Loger.WARN = 1;
  67 +Loger.ERROR = 2;
  68 +Loger.NO = Infinity;
  69 +Loger.logLevel = Loger.LOG;
  70 +
  71 +export default {
  72 + getLoger: function getLoger(info) {
  73 + return new Loger(info);
  74 + },
  75 + setLogLevel: function setLogLevel(logLevel) {
  76 + Loger.logLevel = logLevel;
  77 + },
  78 + LOG: Loger.LOG,
  79 + WARN: Loger.WARN,
  80 + ERROR: Loger.ERROR,
  81 + NO: Loger.NO,
  82 +};
  1 +// //////////////////////////////////////////////////////////////////////////////
  2 +//
  3 +// Copyright (C) 2016-present
  4 +// All Rights Reserved.
  5 +//
  6 +// Author: AlexWang
  7 +// Date: 2016-08-27 21:40:49
  8 +// Last Modified by: AlexWang
  9 +// Last Modified time: 2017-05-20 12:38:31
  10 +// QQ Email: 1669499355@qq.com
  11 +// Description: 底层Socket管理器,保持一直在线及异常重连.
  12 +//
  13 +// //////////////////////////////////////////////////////////////////////////////
  14 +
  15 +import Emiter from 'Emiter';
  16 +import Loger from 'Loger';
  17 +let loger = Loger.getLoger('EverSocket');
  18 +
  19 +class EverSocket extends Emiter {
  20 + constructor() {
  21 + super();
  22 + this._connected = false;
  23 + this._lastActiveTime = 0;
  24 + this._enableEverSocket = false;
  25 + }
  26 +
  27 + begin(ip, port) {
  28 + loger.log('开始WebSocket应用.');
  29 + this._enableEverSocket = true;
  30 + this.wsURL = 'ws://' + ip + ':' + port;
  31 + this._newConnection();
  32 + }
  33 +
  34 + end() {
  35 + loger.log('停止WebSocket应用.');
  36 + this._clear();
  37 + }
  38 +
  39 + get connected() {
  40 + return this._connected;
  41 + }
  42 +
  43 + send(data) {
  44 + if (this._connected) {
  45 + loger.log('SEND MESSAGE---->', data);
  46 + this.websocket.send(data);
  47 + } else {
  48 + loger.warn('WebSocket未建立连接.消息忽略');
  49 + }
  50 + }
  51 +
  52 + _setConnected(isConn = true) {
  53 + this._connected = isConn;
  54 + if (this._connected) {
  55 + this.emit(EverSocket.OPEN);
  56 + } else {
  57 + this.emit(EverSocket.CLOSED);
  58 + }
  59 + }
  60 +
  61 + _newConnection() {
  62 + this.websocket = new WebSocket(this.wsURL);
  63 + this.websocket.binaryType = 'arraybuffer';
  64 + this.websocket.onopen = this._onOpen.bind(this);
  65 + this.websocket.onclose = this._onClose.bind(this);
  66 + this.websocket.onerror = this._onError.bind(this);
  67 + this.websocket.onmessage = this._onMessage.bind(this);
  68 + }
  69 +
  70 + _reConnection() {
  71 + this._clear();
  72 + this.reConnectionTimeout = window.setTimeout(() => {
  73 + loger.log('WebSocket重新建立.');
  74 + window.clearTimeout(this.reConnectionTimeout);
  75 + this._newConnection();
  76 + }, EverSocket.RECONN_INTERVAL);
  77 + }
  78 +
  79 + _clear() {
  80 + loger.log('WebSocket,Timers销毁');
  81 + window.clearInterval(this.pingTimer);
  82 + window.clearInterval(this.pongTimer);
  83 + this.websocket.onopen = undefined;
  84 + this.websocket.onclose = undefined;
  85 + this.websocket.onerror = undefined;
  86 + this.websocket.onmessage = undefined;
  87 + try {
  88 + this.websocket.close();
  89 + } catch (e) {
  90 + loger.log('ignore errors');
  91 + }
  92 + this.websocket = undefined;
  93 + this._enableEverSocket = false;
  94 + this._setConnected(false);
  95 + }
  96 +
  97 + _onOpen() {
  98 + loger.log('WebSocket建立成功', this.wsURL);
  99 + //this.pingTimer = window.setInterval(this._sendPingHandler.bind(this), EverSocket.PING_INTERVAL);
  100 + //this.pongTimer = window.setInterval(this._checkPongHandler.bind(this), EverSocket.PONG_INTERVAL);
  101 + this._setConnected();
  102 + }
  103 +
  104 + _onClose(closeEvent) {
  105 + loger.log(`WebSocket连接断开 CODE:${closeEvent.code} REASON:${closeEvent.reason} CLEAN: ${closeEvent.wasClean}`, this.wsURL);
  106 + this._reConnection();
  107 + }
  108 +
  109 + _onError() {
  110 + loger.log('WebSocket错误出现');
  111 + this._connected = false;
  112 + this._reConnection();
  113 + }
  114 +
  115 + _onMessage(messageEvent) {
  116 + loger.log('<----RECEIVE MESSAGE');
  117 + this._lastActiveTime = Date.now();
  118 + const bufferData = messageEvent.data;
  119 + if (bufferData.byteLength > 0) {
  120 + this.emit(EverSocket.MESSAGE, bufferData);
  121 + }
  122 + }
  123 +
  124 + _sendPingHandler() {
  125 + if (this._connected) {
  126 + this.websocket.send(new ArrayBuffer);
  127 + } else {
  128 + this._reConnection();
  129 + }
  130 + }
  131 +
  132 + _checkPongHandler() {
  133 + let pongTime = Date.now();
  134 + if (this._lastActiveTime &&
  135 + this._lastActiveTime >= pongTime - EverSocket.PONG_INTERVAL &&
  136 + this._lastActiveTime <= pongTime
  137 + ) {} else {
  138 + loger.warn('---服务器PINGPONG超时-----');
  139 + this._reConnection();
  140 + }
  141 + }
  142 +}
  143 +
  144 +EverSocket.prototype.PONG_INTERVAL = EverSocket.PONG_INTERVAL = 5000;
  145 +EverSocket.prototype.PING_INTERVAL = EverSocket.PING_INTERVAL = 3000;
  146 +EverSocket.prototype.RECONN_INTERVAL = EverSocket.RECONN_INTERVAL = 2000;
  147 +EverSocket.prototype.CONNECTING = EverSocket.CONNECTING = 0;
  148 +EverSocket.prototype.OPEN = EverSocket.OPEN = 1;
  149 +EverSocket.prototype.CLOSING = EverSocket.CLOSING = 2;
  150 +EverSocket.prototype.CLOSED = EverSocket.CLOSED = 3;
  151 +EverSocket.prototype.MESSAGE = EverSocket.MESSAGE = 4;
  152 +
  153 +export default new EverSocket();
@@ -6,15 +6,592 @@ @@ -6,15 +6,592 @@
6 // 6 //
7 // Github Home: https://github.com/AlexWang1987 7 // Github Home: https://github.com/AlexWang1987
8 // Author: AlexWang 8 // Author: AlexWang
9 -// Date: 2017-03-17 11:13:14 9 +// Date: 2017-05-20 16:54:13
10 // QQ Email: 1669499355@qq.com 10 // QQ Email: 1669499355@qq.com
11 -// Last Modified time: 2017-03-17 11:13:36  
12 -// Description: wbp-init-umd-main 11 +// Last Modified time: 2017-05-26 18:44:59
  12 +// Description: saas-main
13 // 13 //
14 // ////////////////////////////////////////////////////////////////////////////// 14 // //////////////////////////////////////////////////////////////////////////////
15 15
16 -// only for hot reload  
17 -if (module && module.hot) {  
18 - module.hot.accept(); 16 +import Emiter from './Emiter.js';
  17 +const e = new Emiter();
  18 +
  19 +function utf16to8(str) {
  20 + var out, i, len, c;
  21 +
  22 + len = str.length;
  23 + out = new Uint8Array(len * 3);
  24 + var utf8len = 0;
  25 + for (i = 0; i < len; i++) {
  26 + c = str.charCodeAt(i);
  27 + if ((c >= 0x0001) && (c <= 0x007F)) {
  28 + out[utf8len++] = c;
  29 + } else if (c > 0x07FF) {
  30 + out[utf8len++] = (0xE0 | ((c >> 12) & 0x0F));
  31 + out[utf8len++] = (0x80 | ((c >> 6) & 0x3F));
  32 + out[utf8len++] = (0x80 | ((c >> 0) & 0x3F));
  33 + } else {
  34 + out[utf8len++] = (0xC0 | ((c >> 6) & 0x1F));
  35 + out[utf8len++] = (0x80 | ((c >> 0) & 0x3F));
  36 + }
  37 + }
  38 + return new Uint8Array(out.buffer, 0, utf8len);
  39 +}
  40 +
  41 +function utf8to16(str) {
  42 + var out, i, len, c;
  43 + var char2, char3;
  44 +
  45 + out = "";
  46 + len = str.length;
  47 + i = 0;
  48 + while (i < len) {
  49 + c = str[i++];
  50 + switch (c >> 4) {
  51 + case 0:
  52 + case 1:
  53 + case 2:
  54 + case 3:
  55 + case 4:
  56 + case 5:
  57 + case 6:
  58 + case 7:
  59 + // 0xxxxxxx
  60 + out += String.fromCharCode(c);
  61 + break;
  62 + case 12:
  63 + case 13:
  64 + // 110x xxxx 10xx xxxx
  65 + char2 = str[i++];
  66 + out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
  67 + break;
  68 + case 14:
  69 + // 1110 xxxx 10xx xxxx 10xx xxxx
  70 + char2 = str[i++];
  71 + char3 = str[i++];
  72 + out += String.fromCharCode(((c & 0x0F) << 12) |
  73 + ((char2 & 0x3F) << 6) |
  74 + ((char3 & 0x3F) << 0));
  75 + break;
  76 + }
  77 + }
  78 +
  79 + return out;
  80 +}
  81 +
  82 +const CODE = [
  83 + "MOV_START_SUC",
  84 + "MOV_START_FAIL",
  85 + "MOV_STOP_SUC",
  86 + "MOV_STOP_FAIL",
  87 + "MOV_PAUSE_SUC",
  88 + "MOV_PAUSE_FAIL",
  89 + "MOV_RESUME_SUC",
  90 + "MOV_RESUME_FAIL",
  91 + "MOV_SEEK_SUC",
  92 + "MOV_SEEK_FAIL",
  93 + "MOV_PROPERTY",
  94 + "SS_START_SUC",
  95 + "SS_START_FAIL",
  96 + "SS_STOP_SUC",
  97 + "SS_STOP_FAIL",
  98 + "REC_START_SUC",
  99 + "REC_START_FAIL",
  100 + "REC_STOP_SUC",
  101 + "REC_STOP_FAIL",
  102 + "REC_PAUSE_SUC",
  103 + "REC_PAUSE_FAIL",
  104 + "REC_RESUME_SUC",
  105 + "REC_RESUME_FAIL",
  106 + "MOV_PLAY_FINISH",
  107 + "MOV_VERSION",
  108 + "SS_VERSION",
  109 + "REC_VERSION",
  110 + "MOV_SELECT_FILE_CANCEL",
  111 + "QAV_LOGIN_SUC",
  112 + "QAV_LOGIN_FAIL",
  113 + "QAV_LOGOUT_SUC",
  114 + "QAV_LOGOUT_FAIL",
  115 + "QAV_ENTERROOM_SUC",
  116 + "QAV_ENTERROOM_FAIL",
  117 + "QAV_LEAVEROOM_SUC",
  118 + "QAV_LEAVEROOM_FAIL",
  119 + "QAV_OPEN_MIC_SUC",
  120 + "QAV_OPEN_MIC_FAIL",
  121 + "QAV_OPEN_MIC_NODEV",
  122 + "QAV_CLOSE_MIC_SUC",
  123 + "QAV_CLOSE_MIC_FAIL",
  124 + "QAV_CLOSE_MIC_NODEV",
  125 + "QAV_OPEN_PLAYER_SUC",
  126 + "QAV_OPEN_PLAYER_FAIL",
  127 + "QAV_OPEN_PLAYER_NODEV",
  128 + "QAV_CLOSE_PLAYER_SUC",
  129 + "QAV_CLOSE_PLAYER_FAIL",
  130 + "QAV_CLOSE_PLAYER_NODEV",
  131 + "QAV_MUTE_AUDIO_SUC",
  132 + "QAV_MUTE_AUDIO_FAIL",
  133 + "QAV_UNMUTE_AUDIO_SUC",
  134 + "QAV_UNMUTE_AUDIO_FAIL",
  135 + "REC_SAVE_FILE_CANCEL",
  136 + "GET_MIC_SUC",
  137 + "GET_MIC_FAIL",
  138 + "DS_START_SUC",
  139 + "DS_START_FAIL",
  140 + "DS_STOP_SUC",
  141 + "DS_STOP_FAIL",
  142 + "AUD_START_SUC",
  143 + "AUD_START_FAIL",
  144 + "AUD_STOP_SUC",
  145 + "AUD_STOP_FAIL",
  146 + "AUD_DATA",
  147 + "SS_DATA",
  148 + "MOV_DATA",
  149 + "PEN_START_SUC",
  150 + "PEN_START_FAIL",
  151 + "PEN_STOP_SUC",
  152 + "PEN_STOP_FAIL",
  153 + "PEN_VERSION",
  154 + "QAV_DEVICE_SUC",
  155 + "QAV_DEVICE_FAIL",
  156 + "CBD_QUERY_SUC",
  157 + "CBD_QUERY_FAIL",
  158 + "CBD_GET_SUC",
  159 + "CBD_GET_FAIL",
  160 + "FILE_GET_SUC",
  161 + "FILE_GET_FAIL",
  162 + "FILE_SET_SUC",
  163 + "FILE_SET_FAIL",
  164 + "RESTART_SUC",
  165 + "RESTART_FAIL",
  166 + "GET_CAM_SUC",
  167 + "GET_CAM_FAIL",
  168 + "CAM_START_SUC",
  169 + "CAM_START_FAIL",
  170 + "CAM_STOP_SUC",
  171 + "CAM_STOP_FAIL",
  172 + "SWITCH_SCENE_SUC",
  173 + "SWITCH_SCENE_FAIL",
  174 + "PUSH_STREAM_FAIL",
  175 + "SHOW_UI_SUC",
  176 + "SET_VIDEO_PARAM_SUC",
  177 + "SET_VIDEO_PARAM_FAIL",
  178 + "GET_VIDEO_PARAM_SUC",
  179 + "GET_VIDEO_PARAM_FAIL",
  180 + "START_RECORD_SUC",
  181 + "START_RECORD_FAIL",
  182 + "STOP_RECORD_SUC",
  183 + "STOP_RECORD_FAIL",
  184 + "START_PUSH_SUC",
  185 + "START_PUSH_FAIL",
  186 + "STOP_PUSH_SUC",
  187 + "STOP_PUSH_FAIL",
  188 + "GET_RTMP_PORT_SUC",
  189 + "GET_RTMP_PORT_FAIL",
  190 + "SET_MIC_VOL_SUC",
  191 + "SET_MIC_VOL_FAIL",
  192 + "GET_MIC_VOL_SUC",
  193 + "GET_MIC_VOL_FAIL",
  194 + "RTMP_CONNECTING",
  195 + "RTMP_CONNECT_SUC",
  196 + "RTMP_CONNECT_FAIL",
  197 + "RTMP_CONNECT_CLOSED"
  198 +];
  199 +
  200 +function sendCommand(cmdName, cmdParams = '') {
  201 + var cmd = new Object();
  202 + cmd.data_len = 0;
  203 + cmd.data = "";
  204 + cmd.name = cmdName;
  205 +
  206 + if (cmdName == "mov_start") {
  207 + cmd.type = 1;
  208 + } else if (cmdName == "mov_stop") {
  209 + cmd.type = 2;
  210 + } else if (cmdName == "mov_pause") {
  211 + cmd.type = 3;
  212 + // var pos = document.getElementById("mov_pos").value;
  213 + pos = cmdParams;
  214 + if (pos.length > 0) {
  215 + cmd.data_len = 4;
  216 + var buffer = new ArrayBuffer(cmd.data_len);
  217 + var Uint32param = new Uint32Array(buffer, 0, 1);
  218 + Uint32param[0] = parseInt(pos);
  219 + cmd.data = new Uint8Array(buffer, 0, 4);
  220 + }
  221 + } else if (cmdName == "mov_resume") {
  222 + cmd.type = 4;
  223 + } else if (cmdName == "mov_seek") {
  224 + cmd.type = 5;
  225 + // var pos = document.getElementById("mov_pos").value;
  226 + pos = cmdParams;
  227 + if (pos.length > 0) {
  228 + cmd.data_len = 4;
  229 + var buffer = new ArrayBuffer(cmd.data_len);
  230 + var Uint32param = new Uint32Array(buffer, 0, 1);
  231 + Uint32param[0] = parseInt(pos);
  232 + cmd.data = new Uint8Array(buffer, 0, 4);
  233 + }
  234 + } else if (cmdName == "ss_start") {
  235 + cmd.type = 6;
  236 + // var param = document.getElementById("ss_start_input");
  237 + // param = cmdParams;
  238 + cmd.data = utf16to8(cmdParams);
  239 + cmd.data_len = cmd.data.length;
  240 + } else if (cmdName == "ss_stop") {
  241 + cmd.type = 7;
  242 + } else if (cmdName == "ss_version") {
  243 + cmd.type = 14;
  244 + } else if (cmdName == "get_mic") {
  245 + cmd.type = 26;
  246 + } else if (cmdName == "ds_start") {
  247 + cmd.type = 27;
  248 + cmd.data_len = 4 * 6 + 256 + 256;
  249 + var buffer = new ArrayBuffer(cmd.data_len);
  250 + var int32param = new Uint32Array(buffer, 0, 6);
  251 + // var coordstr = document.getElementById("ds_start_coord").value;
  252 + coordstr = cmdParams;
  253 + var coordarray = coordstr.split(",");
  254 + if (coordarray.length == 4) {
  255 + int32param[0] = parseInt(coordarray[0]);
  256 + int32param[1] = parseInt(coordarray[1]);
  257 + int32param[2] = parseInt(coordarray[2]);
  258 + int32param[3] = parseInt(coordarray[3]);
  259 + } else {
  260 + //promopt error parameter
  261 + return; //
  262 + }
  263 +
  264 + var window_name_buffer = new Uint8Array(buffer, 24, 256);
  265 + // var window_name = document.getElementById("ds_start_window_name").value;
  266 + window_name = cmdParams;
  267 + //var window_name_array = new TextEncoder("utf-8").encode(window_name);
  268 + var window_name_array = utf16to8(window_name);
  269 + for (var i = 0; i < window_name_array.length; i++) {
  270 + window_name_buffer[i] = window_name_array[i];
  271 + }
  272 +
  273 + int32param[4] = window_name_array.length;
  274 + int32param[5] = 0;
  275 +
  276 + var url_name = new Uint8Array(buffer, 24 + 256, 256); //todo: set push url
  277 + cmd.data = new Uint8Array(buffer, 0, cmd.data_len);
  278 + _sendCommand(cmd);
  279 + return;
  280 + } else if (cmdName == "ds_stop") {
  281 + cmd.type = 28;
  282 + } else if (cmdName == "aud_start") {
  283 + cmd.type = 29;
  284 + cmd.data_len = 4 + 4 + 256 + 256;
  285 + var buffer = new ArrayBuffer(cmd.data_len);
  286 + var mic_name_len = new Uint32Array(buffer, 0, 1);
  287 + var sel_mic_name = cmdParams;
  288 + mic_name_len[0] = sel_mic_name.length;
  289 + var urlname_len = new Uint32Array(buffer, 4, 1);
  290 + urlname_len[0] = 0;
  291 + var mic_name = new Uint8Array(buffer, 8, 256);
  292 + var mic_name_array = utf16to8(sel_mic_name);
  293 + for (var i = 0; i < mic_name_array.length; i++) {
  294 + mic_name[i] = mic_name_array[i];
  295 + }
  296 + var url_name = new Uint8Array(buffer, 8 + 256, 256);
  297 + cmd.data = new Uint8Array(buffer, 0, cmd.data_len);
  298 + _sendCommand(cmd);
  299 + return;
  300 + } else if (cmdName == "aud_stop") {
  301 + cmd.type = 30;
  302 + } else if (cmdName == "get_cam") {
  303 + cmd.type = 41;
  304 + } else if (cmdName == "cam_start") {
  305 + cmd.type = 42;
  306 + cmd.data_len = 4 + 4 + 256 + 256;
  307 + var buffer = new ArrayBuffer(cmd.data_len);
  308 + var cam_name_len = new Uint32Array(buffer, 0, 1);
  309 + var sel_cam_name = cmdParams;
  310 + cam_name_len[0] = sel_cam_name.length;
  311 + var urlname_len = new Uint32Array(buffer, 4, 1);
  312 + urlname_len[0] = 0;
  313 + var cam_name = new Uint8Array(buffer, 8, 256);
  314 + //var cam_name_array = new TextEncoder("utf-8").encode(sel_cam_name);
  315 + var cam_name_array = utf16to8(sel_cam_name);
  316 + for (var i = 0; i < cam_name_array.length; i++) {
  317 + cam_name[i] = cam_name_array[i];
  318 + }
  319 + var url_name = new Uint8Array(buffer, 8 + 256, 256); //todo: set push url
  320 + cmd.data = new Uint8Array(buffer, 0, cmd.data_len);
  321 + _sendCommand(cmd);
  322 + return;
  323 + } else if (cmdName == "cam_stop") {
  324 + cmd.type = 43;
  325 + } else if (cmdName == "set_videoparam") {
  326 + cmd.type = 46;
  327 + cmd.data = utf16to8(cmdParams);
  328 + cmd.data_len = cmd.data.length;
  329 + } else if (cmdName == "get_videoparam") {
  330 + cmd.type = 47;
  331 + cmd.data = utf16to8(cmdParams);
  332 + cmd.data_len = cmd.data.length;
  333 + } else if (cmdName == "start_record") {
  334 + cmd.type = 48;
  335 + cmd.data = utf16to8(cmdParams);
  336 + cmd.data_len = cmd.data.length;
  337 + } else if (cmdName == "stop_record") {
  338 + cmd.type = 49;
  339 + cmd.data = utf16to8(cmdParams);
  340 + cmd.data_len = cmd.data.length;
  341 + } else if (cmdName == "start_push") {
  342 + cmd.type = 50;
  343 + cmd.data = utf16to8(cmdParams);
  344 + cmd.data_len = cmd.data.length;
  345 + } else if (cmdName == "stop_push") {
  346 + cmd.type = 51;
  347 + cmd.data = utf16to8(cmdParams);
  348 + cmd.data_len = cmd.data.length;
  349 + } else if (cmdName == "get_rtmp_port") {
  350 + cmd.type = 52;
  351 + } else if (cmdName == "set_mic_vol") {
  352 + cmd.type = 53;
  353 + cmd.data = utf16to8(cmdParams);
  354 + cmd.data_len = cmd.data.length;
  355 + } else if (cmdName == "get_mic_vol") {
  356 + cmd.type = 54;
  357 + }
  358 + _sendCommand(cmd);
  359 +}
  360 +
  361 +function _sendCommand(wsCmd) {
  362 + var cmd_buf_len = 2 + 1 * 2 + 4 + wsCmd.data_len;
  363 + var buffer = new ArrayBuffer(cmd_buf_len);
  364 + var cmd = new Uint16Array(buffer, 0, 1);
  365 + var byte_order = new Uint8Array(buffer, 2, 1);
  366 + var data_len = new Uint32Array(buffer, 4, 1);
  367 +
  368 + cmd[0] = wsCmd.type;
  369 + byte_order[0] = 0;
  370 + data_len[0] = wsCmd.data_len;
  371 +
  372 + if (wsCmd.data_len > 0) {
  373 + var data_buf = new Uint8Array(buffer, 8, wsCmd.data_len);
  374 + for (var i = 0; i < wsCmd.data_len; i++) {
  375 + data_buf[i] = wsCmd.data[i];
  376 + }
  377 + }
  378 +
  379 + if (ws) ws.send(buffer);
  380 +}
  381 +
  382 +let movieInfo = null;
  383 +let versionInfo = '';
  384 +let cameraInfo = [];
  385 +let micInfo = [];
  386 +let videoInfo = '';
  387 +let rtmpPort = '';
  388 +let micVol = '';
  389 +let ws = null;
  390 +let host = '127.0.0.1';
  391 +let port = 8090;
  392 +let wstimer = 0;
  393 +
  394 +function clear() {
  395 + try {
  396 + if (ws) {
  397 + ws.close();
  398 + ws = ws.onopen = ws.onclose = ws.onerror = ws.onmessage = null;
  399 + e.emit(e.CLOSE);
  400 + }
  401 + } catch (er) {
  402 + console.log(er);
  403 + }
  404 +}
  405 +
  406 +function stop() {
  407 + clear();
  408 +}
  409 +
  410 +function start() {
  411 + if (ws) {
  412 + clear();
  413 + }
  414 + ws = new WebSocket('ws://' + host + ':' + port);
  415 + wstimer = setTimeout(() => {
  416 + clearTimeout(wstimer);
  417 + clear();
  418 + }, 1500)
  419 + ws.timeout = 1500;
  420 + ws.binaryType = 'arraybuffer';
  421 + ws.onopen = () => {
  422 + clearTimeout(wstimer);
  423 + sendCommand("get_rtmp_port");
  424 + sendCommand("get_mic");
  425 + sendCommand("get_cam");
  426 + sendCommand("get_mic_vol");
  427 + e.emit(e.OPEN);
  428 + }
  429 +
  430 + ws.onclose = () => {
  431 + clear();
  432 + };
  433 +
  434 + ws.onerror = () => {
  435 + clear();
  436 + }
  437 +
  438 + ws.onmessage = (evt) => {
  439 + const msg = evt.data;
  440 + if (typeof (evt.data) === "string") {
  441 + console.log('on message [string] ignore.');
  442 + } else {
  443 + var dv = new DataView(msg);
  444 + var result = dv.getUint16(0, true);
  445 + console.log('onmessage code->', result);
  446 + var byte_order = dv.getUint8(2, true);
  447 + var data_len = dv.getUint32(4, true);
  448 + if (result >= 0 && result < CODE.length) {
  449 + var resultString = CODE[result];
  450 + } else {}
  451 + if (0 == result || 6 == result || 8 == result) { //mov_start,mov_pause,mov_seek success
  452 + console.log('mov_start,mov_pause,mov_seek success');
  453 + //playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/ms");
  454 + } else if (10 == result) { //movie property
  455 + if (data_len > 7 * 4 + 8) {
  456 + var uint32params = new Uint32Array(msg, 8, 8);
  457 + var info = "width:" + uint32params[0] + " height:" + uint32params[1];
  458 + info = "framerate:" + uint32params[2] + " duration:" + uint32params[3];
  459 + info = "playpos:" + uint32params[4] + " filesize:" + uint32params[5];
  460 + movieInfo = info;
  461 + var file_name_len = uint32params[6];
  462 + var file_name = new Uint8Array(msg, 40, file_name_len);
  463 + var file_name_string = utf8to16(file_name);
  464 + movieInfo.filename = file_name_string;
  465 +
  466 + e.emit(e.MOVIE_INFO_CHANGE, movieInfo);
  467 + }
  468 + } else if (11 == result) {
  469 + console.log('ss_start success');
  470 + e.emit(e.SS_START);
  471 + } else if (24 <= result && 26 >= result) {
  472 + if (data_len >= 4) {
  473 + var version = dv.getUint32(8, true);
  474 + versionInfo = version.toString();
  475 + e.emit(e.VERSION_INFO_CHANGE, versionInfo);
  476 + }
  477 + } else if (55 == result) { //ds_start success
  478 + console.log('ds_start success');
  479 + //playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/ds");
  480 + } else if (59 == result) { //as start success
  481 + console.log('as start success');
  482 + //playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/as");
  483 + } else if (result == 83) { //get camera sucess
  484 + console.log('get camera sucess');
  485 + if (data_len > 4) {
  486 + var cam_num = dv.getUint32(8, true);
  487 + var offset = 12;
  488 + cameraInfo.length = 0;
  489 + for (var i = 0; i < cam_num; i++) {
  490 + var cam_name_len = dv.getUint32(offset, true);
  491 + offset += 4;
  492 + var cam_name = new Uint8Array(msg, offset, cam_name_len - 1);
  493 + offset += cam_name_len;
  494 + //var data_sting = new TextDecoder("utf-8").decode(cam_name);
  495 + var data_sting = utf8to16(cam_name);
  496 + cameraInfo.push(data_sting)
  497 + }
  498 + e.emit(e.CAMERA_INFO_CHANGE, cameraInfo);
  499 + }
  500 + } else if (53 == result) { //get mic success
  501 + if (data_len > 4) {
  502 + var mic_num = dv.getUint32(8, true);
  503 + var offset = 12;
  504 + micInfo.length = 0;
  505 + for (var i = 0; i < mic_num; i++) {
  506 + var mic_name_len = dv.getUint32(offset, true);
  507 + offset += 4;
  508 + var mic_name = new Uint8Array(msg, offset, mic_name_len - 1);
  509 + offset += mic_name_len;
  510 + //var data_sting = new TextDecoder("utf-8").decode(mic_name);
  511 + var data_sting = utf8to16(mic_name);
  512 + micInfo.push(data_sting);
  513 + }
  514 + e.emit(e.MIC_INFO_CHANGE, micInfo);
  515 + }
  516 + } else if (85 == result) { //cam_share success
  517 + console.log('cam_share success');
  518 + //playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/cs");
  519 + } else if (95 == result) { //get_videoparam success
  520 + console.log('get_videoparam success');
  521 + var data = new Uint8Array(msg, 8, msg.byteLength - 8 - 1);
  522 + //var data_sting = new TextDecoder("utf-8").decode(data);
  523 + var data_sting = utf8to16(data);
  524 + videoInfo = data_sting;
  525 + e.emit(e.VIDEO_INFO_CHANGE, videoInfo);
  526 + } else if (105 == result) { //get_rtmp_port_success
  527 + console.log('get_rtmp_port_success');
  528 + var data = new Uint8Array(msg, 8, msg.byteLength - 8 - 1);
  529 + //var data_sting = new TextDecoder("utf-8").decode(data);
  530 + var data_sting = utf8to16(data);
  531 + rtmpPort = data_sting;
  532 + e.emit(e.RTMP_PORT_CHANGE, rtmpPort);
  533 + } else if (109 == result) { //get_mic_vol success
  534 + console.log('get_mic_vol success');
  535 + var data = new Uint8Array(msg, 8, msg.byteLength - 8 - 1);
  536 + //var data_sting = new TextDecoder("utf-8").decode(data);
  537 + var data_sting = utf8to16(data);
  538 + micVol = data_sting;
  539 + e.emit(e.MIC_VOL_CHANGE, micVol);
  540 + } else if (111 <= result && 114 >= result) {
  541 + var data = new Uint8Array(msg, 8, msg.byteLength - 8);
  542 + var url = utf8to16(data);
  543 + console.log('url->', url);
  544 + } else if (13 == result) {
  545 + e.emit(e.SS_STOP);
  546 + } else {
  547 + var data = new Uint8Array(msg, 8, msg.byteLength - 8);
  548 + //var data_sting = new TextDecoder("utf-8").decode(data);
  549 + var data_sting = utf8to16(data);
  550 + console.log('data ->', data_sting);
  551 + }
  552 + }
  553 + }
  554 +}
  555 +
  556 +e.infos = { movieInfo, versionInfo, cameraInfo, micInfo, videoInfo, rtmpPort, micVol }
  557 +e.MOVIE_INFO_CHANGE = 'MOVIE_INFO_CHANGE';
  558 +e.VERSION_INFO_CHANGE = 'VERSION_INFO_CHANGE';
  559 +e.CAMERA_INFO_CHANGE = 'CAMERA_INFO_CHANGE';
  560 +e.MIC_INFO_CHANGE = 'MIC_INFO_CHANGE';
  561 +e.VIDEO_INFO_CHANGE = 'VIDEO_INFO_CHANGE';
  562 +e.RTMP_PORT_CHANGE = 'RTMP_PORT_CHANGE';
  563 +e.MIC_VOL_CHANGE = 'MIC_VOL_CHANGE';
  564 +e.SS_START = 'SS_START';
  565 +e.SS_STOP = 'SS_STOP';
  566 +e.OPEN = 'OPEN';
  567 +e.CLOSE = 'CLOSE';
  568 +e.ERROR = 'ERROR';
  569 +
  570 +e.getRTMPPort = () => {
  571 + sendCommand('get_rtmp_port');
  572 +}
  573 +e.getMicInfo = () => {
  574 + sendCommand('get_mic');
  575 +}
  576 +e.getCamInfo = () => {
  577 + sendCommand('get_cam');
  578 +}
  579 +e.getMicVol = () => {
  580 + sendCommand('get_mic_vol');
  581 +}
  582 +e.start = (_host = '127.0.0.1', _port) => {
  583 + host = _host;
  584 + port = _port;
  585 + start();
  586 +}
  587 +e.stop = () => {
  588 + stop();
  589 +}
  590 +e.startShareScreen = (params = '') => {
  591 + sendCommand('ss_start', params);
  592 +}
  593 +e.stopShareScreen = () => {
  594 + sendCommand('ss_stop');
19 } 595 }
20 596
  597 +export default e;
1 -// //////////////////////////////////////////////////////////////////////////////  
2 -//  
3 -// Copyright (C) 2016-present All Rights Reserved.  
4 -// Licensed under the Apache License, Version 2.0 (the "License");  
5 -// http://www.apache.org/licenses/LICENSE-2.0  
6 -//  
7 -// Github Home: https://github.com/AlexWang1987  
8 -// Author: AlexWang  
9 -// Date: 2017-03-17 11:13:11  
10 -// QQ Email: 1669499355@qq.com  
11 -// Last Modified time: 2017-03-17 11:13:45  
12 -// Description: wbp-init-umd-test  
13 -//  
14 -// //////////////////////////////////////////////////////////////////////////////  
15 -  
16 -// only for hot reload  
17 -if (module && module.hot) {  
18 - module.hot.accept(); 1 +import ss from 'main.js';
  2 +
  3 +// 媒体信息
  4 +ss.on(ss.MOVIE_INFO_CHANGE, (d) => {
  5 + console.log('MOVIE_INFO_CHANGE->', d);
  6 +})
  7 +
  8 +// 版本信息
  9 +ss.on(ss.VERSION_INFO_CHANGE, (d) => {
  10 + console.log('VERSION_INFO_CHANGE->', d);
  11 +})
  12 +
  13 +// 本地摄像头设备
  14 +ss.on(ss.CAMERA_INFO_CHANGE, (d) => {
  15 + console.log('CAMERA_INFO_CHANGE->', d);
  16 +})
  17 +
  18 +// 本地麦克风设备
  19 +ss.on(ss.MIC_INFO_CHANGE, (d) => {
  20 + console.log('MIC_INFO_CHANGE->', d);
  21 +})
  22 +
  23 +// 视频信息
  24 +ss.on(ss.VIDEO_INFO_CHANGE, (d) => {
  25 + console.log('VIDEO_INFO_CHANGE->', d);
  26 +})
  27 +
  28 +// 本地RTMP服务端口
  29 +ss.on(ss.RTMP_PORT_CHANGE, (d) => {
  30 + console.log('RTMP_PORT_CHANGE->', d);
  31 +})
  32 +
  33 +// 麦克风音量
  34 +ss.on(ss.MIC_VOL_CHANGE, (d) => {
  35 + console.log('MIC_VOL_CHANGE->', d);
  36 +})
  37 +
  38 +function startSS() {
  39 + // 发起屏幕共享[推送地址可选]
  40 + console.log('发起屏幕');
  41 + ss.startShareScreen('rtmp://123.56.205.116/live/alexwang');
19 } 42 }
20 43
  44 +function stopSS() {
  45 + // 关闭屏幕共享
  46 + console.log('关闭屏幕');
  47 + //ss.stopShareScreen();
  48 +}
  49 +
  50 +// 屏幕共享开始
  51 +ss.on(ss.SS_START, () => {
  52 + console.log('SS_START');
  53 + setTimeout(() => {
  54 + stopSS();
  55 + }, 200)
  56 +})
  57 +
  58 +// 屏幕共享关闭
  59 +ss.on(ss.SS_STOP, () => {
  60 + console.log('SS_STOP');
  61 + setTimeout(() => {
  62 + startSS();
  63 + }, 500)
  64 +})
  65 +
  66 +// 发生错误
  67 +ss.on(ss.ERROR, () => {
  68 + console.log('ERROR');
  69 +})
  70 +
  71 +// 服务关闭
  72 +ss.on(ss.CLOSE, () => {
  73 + console.log('CLOSE');
  74 +})
  75 +
  76 +// 服务开启
  77 +ss.on(ss.OPEN, () => {
  78 + console.log('OPEN');
  79 + startSS();
  80 +})
  81 +
  82 +// 连接本地流媒体服务
  83 +ss.start('192.168.222.216', 8090);
1 module.exports = function (umdConf) { 1 module.exports = function (umdConf) {
2 umdConf.devServer.host = '0.0.0.0'; 2 umdConf.devServer.host = '0.0.0.0';
  3 + umdConf.devServer.port = '9000';
3 umdConf.output.publicPath = ''; 4 umdConf.output.publicPath = '';
4 5
5 umdConf.webpackFeatures.enableEntryHTML(); 6 umdConf.webpackFeatures.enableEntryHTML();
@@ -14,4 +15,3 @@ module.exports = function (umdConf) { @@ -14,4 +15,3 @@ module.exports = function (umdConf) {
14 }); 15 });
15 } 16 }
16 }; 17 };
17 -