AlexWang

t push -u origin master

不能预览此文件类型
<!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>
\ No newline at end of file
... ...
!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}])});
\ No newline at end of file
... ...
<!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>
\ No newline at end of file
... ...
!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)}])});
\ No newline at end of file
... ...
... ... @@ -15,7 +15,9 @@
],
"author": "AlexWang",
"license": "MIT",
"dependencies": {},
"dependencies": {
"buffer": "^5.0.6"
},
"wbp": {
"project": "umd",
"entries": {
... ...
// //////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016-present All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// http://www.apache.org/licenses/LICENSE-2.0
//
// Github Home: https://github.com/AlexWang1987
// Author: AlexWang
// Date: 2017-05-20 11:55:44
// QQ Email: 1669499355@qq.com
// Last Modified time: 2017-05-20 11:55:45
// Description: saas-Emiter
//
// //////////////////////////////////////////////////////////////////////////////
export default class Emiter {
constructor() {
this.MAPS = {};
}
on(eid, elistener) {
if (eid && elistener) {
let stub = this.MAPS[eid];
if (!stub) {
return this.MAPS[eid] = [elistener];
}
stub.push(elistener);
}
}
off(eid, elistener) {
if (eid) {
let stub = this.MAPS[eid];
if (stub) {
if (elistener) {
return stub.splice(stub.indexOf(elistener), 1);
}
stub.length = 0;
}
}
}
emit(eid, data) {
if (eid) {
//eid=* broadcast
let asteriskStub = this.MAPS['*'];
if (asteriskStub && asteriskStub.length) {
asteriskStub.forEach(function (elistener) {
elistener(eid, data);
})
}
// eid= normal
let stub = this.MAPS[eid];
if (stub && stub.length) {
stub.forEach(function (elistener) {
elistener(data);
});
}
}
}
}
... ...
// //////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016-present All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// http://www.apache.org/licenses/LICENSE-2.0
//
// Github Home: https://github.com/AlexWang1987
// Author: AlexWang
// Date: 2016-08-27 22:58:47
// QQ Email: 1669499355@qq.com
// Last Modified time: 2017-05-20 11:56:07
// Description: LiveClass-Loger
//
// //////////////////////////////////////////////////////////////////////////////
class Loger {
constructor(info) {
this.info = info || '';
this.id = this.initId();
}
initId() {
const infoType = this.info.constructor.name.toLowerCase();
if (infoType === 'string') {
return this.info;
}
if (infoType === 'object') {
return this.info.mid || '';
}
return '';
}
log(...msg) {
this._log(Loger.LOG, msg);
}
warn(...msg) {
this._log(Loger.WARN, msg);
}
error(...msg) {
this._log(Loger.ERROR, msg);
}
_log(type, msg) {
msg = JSON.stringify(msg);
let logMsg = `${this.id} -> ${msg}`;
if (type >= Loger.logLevel) {
switch (type) {
case Loger.LOG:
console.log(logMsg);
break;
case Loger.WARN:
console.warn(logMsg);
break;
case Loger.ERROR:
console.error(logMsg);
break;
}
}
}
}
Loger.LOG = 0;
Loger.WARN = 1;
Loger.ERROR = 2;
Loger.NO = Infinity;
Loger.logLevel = Loger.LOG;
export default {
getLoger: function getLoger(info) {
return new Loger(info);
},
setLogLevel: function setLogLevel(logLevel) {
Loger.logLevel = logLevel;
},
LOG: Loger.LOG,
WARN: Loger.WARN,
ERROR: Loger.ERROR,
NO: Loger.NO,
};
... ...
// //////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016-present
// All Rights Reserved.
//
// Author: AlexWang
// Date: 2016-08-27 21:40:49
// Last Modified by: AlexWang
// Last Modified time: 2017-05-20 12:38:31
// QQ Email: 1669499355@qq.com
// Description: 底层Socket管理器,保持一直在线及异常重连.
//
// //////////////////////////////////////////////////////////////////////////////
import Emiter from 'Emiter';
import Loger from 'Loger';
let loger = Loger.getLoger('EverSocket');
class EverSocket extends Emiter {
constructor() {
super();
this._connected = false;
this._lastActiveTime = 0;
this._enableEverSocket = false;
}
begin(ip, port) {
loger.log('开始WebSocket应用.');
this._enableEverSocket = true;
this.wsURL = 'ws://' + ip + ':' + port;
this._newConnection();
}
end() {
loger.log('停止WebSocket应用.');
this._clear();
}
get connected() {
return this._connected;
}
send(data) {
if (this._connected) {
loger.log('SEND MESSAGE---->', data);
this.websocket.send(data);
} else {
loger.warn('WebSocket未建立连接.消息忽略');
}
}
_setConnected(isConn = true) {
this._connected = isConn;
if (this._connected) {
this.emit(EverSocket.OPEN);
} else {
this.emit(EverSocket.CLOSED);
}
}
_newConnection() {
this.websocket = new WebSocket(this.wsURL);
this.websocket.binaryType = 'arraybuffer';
this.websocket.onopen = this._onOpen.bind(this);
this.websocket.onclose = this._onClose.bind(this);
this.websocket.onerror = this._onError.bind(this);
this.websocket.onmessage = this._onMessage.bind(this);
}
_reConnection() {
this._clear();
this.reConnectionTimeout = window.setTimeout(() => {
loger.log('WebSocket重新建立.');
window.clearTimeout(this.reConnectionTimeout);
this._newConnection();
}, EverSocket.RECONN_INTERVAL);
}
_clear() {
loger.log('WebSocket,Timers销毁');
window.clearInterval(this.pingTimer);
window.clearInterval(this.pongTimer);
this.websocket.onopen = undefined;
this.websocket.onclose = undefined;
this.websocket.onerror = undefined;
this.websocket.onmessage = undefined;
try {
this.websocket.close();
} catch (e) {
loger.log('ignore errors');
}
this.websocket = undefined;
this._enableEverSocket = false;
this._setConnected(false);
}
_onOpen() {
loger.log('WebSocket建立成功', this.wsURL);
//this.pingTimer = window.setInterval(this._sendPingHandler.bind(this), EverSocket.PING_INTERVAL);
//this.pongTimer = window.setInterval(this._checkPongHandler.bind(this), EverSocket.PONG_INTERVAL);
this._setConnected();
}
_onClose(closeEvent) {
loger.log(`WebSocket连接断开 CODE:${closeEvent.code} REASON:${closeEvent.reason} CLEAN: ${closeEvent.wasClean}`, this.wsURL);
this._reConnection();
}
_onError() {
loger.log('WebSocket错误出现');
this._connected = false;
this._reConnection();
}
_onMessage(messageEvent) {
loger.log('<----RECEIVE MESSAGE');
this._lastActiveTime = Date.now();
const bufferData = messageEvent.data;
if (bufferData.byteLength > 0) {
this.emit(EverSocket.MESSAGE, bufferData);
}
}
_sendPingHandler() {
if (this._connected) {
this.websocket.send(new ArrayBuffer);
} else {
this._reConnection();
}
}
_checkPongHandler() {
let pongTime = Date.now();
if (this._lastActiveTime &&
this._lastActiveTime >= pongTime - EverSocket.PONG_INTERVAL &&
this._lastActiveTime <= pongTime
) {} else {
loger.warn('---服务器PINGPONG超时-----');
this._reConnection();
}
}
}
EverSocket.prototype.PONG_INTERVAL = EverSocket.PONG_INTERVAL = 5000;
EverSocket.prototype.PING_INTERVAL = EverSocket.PING_INTERVAL = 3000;
EverSocket.prototype.RECONN_INTERVAL = EverSocket.RECONN_INTERVAL = 2000;
EverSocket.prototype.CONNECTING = EverSocket.CONNECTING = 0;
EverSocket.prototype.OPEN = EverSocket.OPEN = 1;
EverSocket.prototype.CLOSING = EverSocket.CLOSING = 2;
EverSocket.prototype.CLOSED = EverSocket.CLOSED = 3;
EverSocket.prototype.MESSAGE = EverSocket.MESSAGE = 4;
export default new EverSocket();
... ...
... ... @@ -6,15 +6,592 @@
//
// Github Home: https://github.com/AlexWang1987
// Author: AlexWang
// Date: 2017-03-17 11:13:14
// Date: 2017-05-20 16:54:13
// QQ Email: 1669499355@qq.com
// Last Modified time: 2017-03-17 11:13:36
// Description: wbp-init-umd-main
// Last Modified time: 2017-05-26 18:44:59
// Description: saas-main
//
// //////////////////////////////////////////////////////////////////////////////
// only for hot reload
if (module && module.hot) {
module.hot.accept();
import Emiter from './Emiter.js';
const e = new Emiter();
function utf16to8(str) {
var out, i, len, c;
len = str.length;
out = new Uint8Array(len * 3);
var utf8len = 0;
for (i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out[utf8len++] = c;
} else if (c > 0x07FF) {
out[utf8len++] = (0xE0 | ((c >> 12) & 0x0F));
out[utf8len++] = (0x80 | ((c >> 6) & 0x3F));
out[utf8len++] = (0x80 | ((c >> 0) & 0x3F));
} else {
out[utf8len++] = (0xC0 | ((c >> 6) & 0x1F));
out[utf8len++] = (0x80 | ((c >> 0) & 0x3F));
}
}
return new Uint8Array(out.buffer, 0, utf8len);
}
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = "";
len = str.length;
i = 0;
while (i < len) {
c = str[i++];
switch (c >> 4) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
// 0xxxxxxx
out += String.fromCharCode(c);
break;
case 12:
case 13:
// 110x xxxx 10xx xxxx
char2 = str[i++];
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str[i++];
char3 = str[i++];
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;
}
const CODE = [
"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"
];
function sendCommand(cmdName, cmdParams = '') {
var cmd = new Object();
cmd.data_len = 0;
cmd.data = "";
cmd.name = cmdName;
if (cmdName == "mov_start") {
cmd.type = 1;
} else if (cmdName == "mov_stop") {
cmd.type = 2;
} else if (cmdName == "mov_pause") {
cmd.type = 3;
// var pos = document.getElementById("mov_pos").value;
pos = cmdParams;
if (pos.length > 0) {
cmd.data_len = 4;
var buffer = new ArrayBuffer(cmd.data_len);
var Uint32param = new Uint32Array(buffer, 0, 1);
Uint32param[0] = parseInt(pos);
cmd.data = new Uint8Array(buffer, 0, 4);
}
} else if (cmdName == "mov_resume") {
cmd.type = 4;
} else if (cmdName == "mov_seek") {
cmd.type = 5;
// var pos = document.getElementById("mov_pos").value;
pos = cmdParams;
if (pos.length > 0) {
cmd.data_len = 4;
var buffer = new ArrayBuffer(cmd.data_len);
var Uint32param = new Uint32Array(buffer, 0, 1);
Uint32param[0] = parseInt(pos);
cmd.data = new Uint8Array(buffer, 0, 4);
}
} else if (cmdName == "ss_start") {
cmd.type = 6;
// var param = document.getElementById("ss_start_input");
// param = cmdParams;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "ss_stop") {
cmd.type = 7;
} else if (cmdName == "ss_version") {
cmd.type = 14;
} else if (cmdName == "get_mic") {
cmd.type = 26;
} else if (cmdName == "ds_start") {
cmd.type = 27;
cmd.data_len = 4 * 6 + 256 + 256;
var buffer = new ArrayBuffer(cmd.data_len);
var int32param = new Uint32Array(buffer, 0, 6);
// var coordstr = document.getElementById("ds_start_coord").value;
coordstr = cmdParams;
var coordarray = coordstr.split(",");
if (coordarray.length == 4) {
int32param[0] = parseInt(coordarray[0]);
int32param[1] = parseInt(coordarray[1]);
int32param[2] = parseInt(coordarray[2]);
int32param[3] = parseInt(coordarray[3]);
} else {
//promopt error parameter
return; //
}
var window_name_buffer = new Uint8Array(buffer, 24, 256);
// var window_name = document.getElementById("ds_start_window_name").value;
window_name = cmdParams;
//var window_name_array = new TextEncoder("utf-8").encode(window_name);
var window_name_array = utf16to8(window_name);
for (var i = 0; i < window_name_array.length; i++) {
window_name_buffer[i] = window_name_array[i];
}
int32param[4] = window_name_array.length;
int32param[5] = 0;
var url_name = new Uint8Array(buffer, 24 + 256, 256); //todo: set push url
cmd.data = new Uint8Array(buffer, 0, cmd.data_len);
_sendCommand(cmd);
return;
} else if (cmdName == "ds_stop") {
cmd.type = 28;
} else if (cmdName == "aud_start") {
cmd.type = 29;
cmd.data_len = 4 + 4 + 256 + 256;
var buffer = new ArrayBuffer(cmd.data_len);
var mic_name_len = new Uint32Array(buffer, 0, 1);
var sel_mic_name = cmdParams;
mic_name_len[0] = sel_mic_name.length;
var urlname_len = new Uint32Array(buffer, 4, 1);
urlname_len[0] = 0;
var mic_name = new Uint8Array(buffer, 8, 256);
var mic_name_array = utf16to8(sel_mic_name);
for (var i = 0; i < mic_name_array.length; i++) {
mic_name[i] = mic_name_array[i];
}
var url_name = new Uint8Array(buffer, 8 + 256, 256);
cmd.data = new Uint8Array(buffer, 0, cmd.data_len);
_sendCommand(cmd);
return;
} else if (cmdName == "aud_stop") {
cmd.type = 30;
} else if (cmdName == "get_cam") {
cmd.type = 41;
} else if (cmdName == "cam_start") {
cmd.type = 42;
cmd.data_len = 4 + 4 + 256 + 256;
var buffer = new ArrayBuffer(cmd.data_len);
var cam_name_len = new Uint32Array(buffer, 0, 1);
var sel_cam_name = cmdParams;
cam_name_len[0] = sel_cam_name.length;
var urlname_len = new Uint32Array(buffer, 4, 1);
urlname_len[0] = 0;
var cam_name = new Uint8Array(buffer, 8, 256);
//var cam_name_array = new TextEncoder("utf-8").encode(sel_cam_name);
var cam_name_array = utf16to8(sel_cam_name);
for (var i = 0; i < cam_name_array.length; i++) {
cam_name[i] = cam_name_array[i];
}
var url_name = new Uint8Array(buffer, 8 + 256, 256); //todo: set push url
cmd.data = new Uint8Array(buffer, 0, cmd.data_len);
_sendCommand(cmd);
return;
} else if (cmdName == "cam_stop") {
cmd.type = 43;
} else if (cmdName == "set_videoparam") {
cmd.type = 46;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "get_videoparam") {
cmd.type = 47;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "start_record") {
cmd.type = 48;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "stop_record") {
cmd.type = 49;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "start_push") {
cmd.type = 50;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "stop_push") {
cmd.type = 51;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "get_rtmp_port") {
cmd.type = 52;
} else if (cmdName == "set_mic_vol") {
cmd.type = 53;
cmd.data = utf16to8(cmdParams);
cmd.data_len = cmd.data.length;
} else if (cmdName == "get_mic_vol") {
cmd.type = 54;
}
_sendCommand(cmd);
}
function _sendCommand(wsCmd) {
var cmd_buf_len = 2 + 1 * 2 + 4 + wsCmd.data_len;
var buffer = new ArrayBuffer(cmd_buf_len);
var cmd = new Uint16Array(buffer, 0, 1);
var byte_order = new Uint8Array(buffer, 2, 1);
var data_len = new Uint32Array(buffer, 4, 1);
cmd[0] = wsCmd.type;
byte_order[0] = 0;
data_len[0] = wsCmd.data_len;
if (wsCmd.data_len > 0) {
var data_buf = new Uint8Array(buffer, 8, wsCmd.data_len);
for (var i = 0; i < wsCmd.data_len; i++) {
data_buf[i] = wsCmd.data[i];
}
}
if (ws) ws.send(buffer);
}
let movieInfo = null;
let versionInfo = '';
let cameraInfo = [];
let micInfo = [];
let videoInfo = '';
let rtmpPort = '';
let micVol = '';
let ws = null;
let host = '127.0.0.1';
let port = 8090;
let wstimer = 0;
function clear() {
try {
if (ws) {
ws.close();
ws = ws.onopen = ws.onclose = ws.onerror = ws.onmessage = null;
e.emit(e.CLOSE);
}
} catch (er) {
console.log(er);
}
}
function stop() {
clear();
}
function start() {
if (ws) {
clear();
}
ws = new WebSocket('ws://' + host + ':' + port);
wstimer = setTimeout(() => {
clearTimeout(wstimer);
clear();
}, 1500)
ws.timeout = 1500;
ws.binaryType = 'arraybuffer';
ws.onopen = () => {
clearTimeout(wstimer);
sendCommand("get_rtmp_port");
sendCommand("get_mic");
sendCommand("get_cam");
sendCommand("get_mic_vol");
e.emit(e.OPEN);
}
ws.onclose = () => {
clear();
};
ws.onerror = () => {
clear();
}
ws.onmessage = (evt) => {
const msg = evt.data;
if (typeof (evt.data) === "string") {
console.log('on message [string] ignore.');
} else {
var dv = new DataView(msg);
var result = dv.getUint16(0, true);
console.log('onmessage code->', result);
var byte_order = dv.getUint8(2, true);
var data_len = dv.getUint32(4, true);
if (result >= 0 && result < CODE.length) {
var resultString = CODE[result];
} else {}
if (0 == result || 6 == result || 8 == result) { //mov_start,mov_pause,mov_seek success
console.log('mov_start,mov_pause,mov_seek success');
//playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/ms");
} else if (10 == result) { //movie property
if (data_len > 7 * 4 + 8) {
var uint32params = new Uint32Array(msg, 8, 8);
var info = "width:" + uint32params[0] + " height:" + uint32params[1];
info = "framerate:" + uint32params[2] + " duration:" + uint32params[3];
info = "playpos:" + uint32params[4] + " filesize:" + uint32params[5];
movieInfo = info;
var file_name_len = uint32params[6];
var file_name = new Uint8Array(msg, 40, file_name_len);
var file_name_string = utf8to16(file_name);
movieInfo.filename = file_name_string;
e.emit(e.MOVIE_INFO_CHANGE, movieInfo);
}
} else if (11 == result) {
console.log('ss_start success');
e.emit(e.SS_START);
} else if (24 <= result && 26 >= result) {
if (data_len >= 4) {
var version = dv.getUint32(8, true);
versionInfo = version.toString();
e.emit(e.VERSION_INFO_CHANGE, versionInfo);
}
} else if (55 == result) { //ds_start success
console.log('ds_start success');
//playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/ds");
} else if (59 == result) { //as start success
console.log('as start success');
//playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/as");
} else if (result == 83) { //get camera sucess
console.log('get camera sucess');
if (data_len > 4) {
var cam_num = dv.getUint32(8, true);
var offset = 12;
cameraInfo.length = 0;
for (var i = 0; i < cam_num; i++) {
var cam_name_len = dv.getUint32(offset, true);
offset += 4;
var cam_name = new Uint8Array(msg, offset, cam_name_len - 1);
offset += cam_name_len;
//var data_sting = new TextDecoder("utf-8").decode(cam_name);
var data_sting = utf8to16(cam_name);
cameraInfo.push(data_sting)
}
e.emit(e.CAMERA_INFO_CHANGE, cameraInfo);
}
} else if (53 == result) { //get mic success
if (data_len > 4) {
var mic_num = dv.getUint32(8, true);
var offset = 12;
micInfo.length = 0;
for (var i = 0; i < mic_num; i++) {
var mic_name_len = dv.getUint32(offset, true);
offset += 4;
var mic_name = new Uint8Array(msg, offset, mic_name_len - 1);
offset += mic_name_len;
//var data_sting = new TextDecoder("utf-8").decode(mic_name);
var data_sting = utf8to16(mic_name);
micInfo.push(data_sting);
}
e.emit(e.MIC_INFO_CHANGE, micInfo);
}
} else if (85 == result) { //cam_share success
console.log('cam_share success');
//playRTMPStream("rtmp://127.0.0.1:" + rtmp_port + "/live/cs");
} else if (95 == result) { //get_videoparam success
console.log('get_videoparam success');
var data = new Uint8Array(msg, 8, msg.byteLength - 8 - 1);
//var data_sting = new TextDecoder("utf-8").decode(data);
var data_sting = utf8to16(data);
videoInfo = data_sting;
e.emit(e.VIDEO_INFO_CHANGE, videoInfo);
} else if (105 == result) { //get_rtmp_port_success
console.log('get_rtmp_port_success');
var data = new Uint8Array(msg, 8, msg.byteLength - 8 - 1);
//var data_sting = new TextDecoder("utf-8").decode(data);
var data_sting = utf8to16(data);
rtmpPort = data_sting;
e.emit(e.RTMP_PORT_CHANGE, rtmpPort);
} else if (109 == result) { //get_mic_vol success
console.log('get_mic_vol success');
var data = new Uint8Array(msg, 8, msg.byteLength - 8 - 1);
//var data_sting = new TextDecoder("utf-8").decode(data);
var data_sting = utf8to16(data);
micVol = data_sting;
e.emit(e.MIC_VOL_CHANGE, micVol);
} else if (111 <= result && 114 >= result) {
var data = new Uint8Array(msg, 8, msg.byteLength - 8);
var url = utf8to16(data);
console.log('url->', url);
} else if (13 == result) {
e.emit(e.SS_STOP);
} else {
var data = new Uint8Array(msg, 8, msg.byteLength - 8);
//var data_sting = new TextDecoder("utf-8").decode(data);
var data_sting = utf8to16(data);
console.log('data ->', data_sting);
}
}
}
}
e.infos = { movieInfo, versionInfo, cameraInfo, micInfo, videoInfo, rtmpPort, micVol }
e.MOVIE_INFO_CHANGE = 'MOVIE_INFO_CHANGE';
e.VERSION_INFO_CHANGE = 'VERSION_INFO_CHANGE';
e.CAMERA_INFO_CHANGE = 'CAMERA_INFO_CHANGE';
e.MIC_INFO_CHANGE = 'MIC_INFO_CHANGE';
e.VIDEO_INFO_CHANGE = 'VIDEO_INFO_CHANGE';
e.RTMP_PORT_CHANGE = 'RTMP_PORT_CHANGE';
e.MIC_VOL_CHANGE = 'MIC_VOL_CHANGE';
e.SS_START = 'SS_START';
e.SS_STOP = 'SS_STOP';
e.OPEN = 'OPEN';
e.CLOSE = 'CLOSE';
e.ERROR = 'ERROR';
e.getRTMPPort = () => {
sendCommand('get_rtmp_port');
}
e.getMicInfo = () => {
sendCommand('get_mic');
}
e.getCamInfo = () => {
sendCommand('get_cam');
}
e.getMicVol = () => {
sendCommand('get_mic_vol');
}
e.start = (_host = '127.0.0.1', _port) => {
host = _host;
port = _port;
start();
}
e.stop = () => {
stop();
}
e.startShareScreen = (params = '') => {
sendCommand('ss_start', params);
}
e.stopShareScreen = () => {
sendCommand('ss_stop');
}
export default e;
... ...
// //////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016-present All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// http://www.apache.org/licenses/LICENSE-2.0
//
// Github Home: https://github.com/AlexWang1987
// Author: AlexWang
// Date: 2017-03-17 11:13:11
// QQ Email: 1669499355@qq.com
// Last Modified time: 2017-03-17 11:13:45
// Description: wbp-init-umd-test
//
// //////////////////////////////////////////////////////////////////////////////
// only for hot reload
if (module && module.hot) {
module.hot.accept();
import ss from 'main.js';
// 媒体信息
ss.on(ss.MOVIE_INFO_CHANGE, (d) => {
console.log('MOVIE_INFO_CHANGE->', d);
})
// 版本信息
ss.on(ss.VERSION_INFO_CHANGE, (d) => {
console.log('VERSION_INFO_CHANGE->', d);
})
// 本地摄像头设备
ss.on(ss.CAMERA_INFO_CHANGE, (d) => {
console.log('CAMERA_INFO_CHANGE->', d);
})
// 本地麦克风设备
ss.on(ss.MIC_INFO_CHANGE, (d) => {
console.log('MIC_INFO_CHANGE->', d);
})
// 视频信息
ss.on(ss.VIDEO_INFO_CHANGE, (d) => {
console.log('VIDEO_INFO_CHANGE->', d);
})
// 本地RTMP服务端口
ss.on(ss.RTMP_PORT_CHANGE, (d) => {
console.log('RTMP_PORT_CHANGE->', d);
})
// 麦克风音量
ss.on(ss.MIC_VOL_CHANGE, (d) => {
console.log('MIC_VOL_CHANGE->', d);
})
function startSS() {
// 发起屏幕共享[推送地址可选]
console.log('发起屏幕');
ss.startShareScreen('rtmp://123.56.205.116/live/alexwang');
}
function stopSS() {
// 关闭屏幕共享
console.log('关闭屏幕');
//ss.stopShareScreen();
}
// 屏幕共享开始
ss.on(ss.SS_START, () => {
console.log('SS_START');
setTimeout(() => {
stopSS();
}, 200)
})
// 屏幕共享关闭
ss.on(ss.SS_STOP, () => {
console.log('SS_STOP');
setTimeout(() => {
startSS();
}, 500)
})
// 发生错误
ss.on(ss.ERROR, () => {
console.log('ERROR');
})
// 服务关闭
ss.on(ss.CLOSE, () => {
console.log('CLOSE');
})
// 服务开启
ss.on(ss.OPEN, () => {
console.log('OPEN');
startSS();
})
// 连接本地流媒体服务
ss.start('192.168.222.216', 8090);
... ...
module.exports = function (umdConf) {
umdConf.devServer.host = '0.0.0.0';
umdConf.devServer.port = '9000';
umdConf.output.publicPath = '';
umdConf.webpackFeatures.enableEntryHTML();
... ... @@ -14,4 +15,3 @@ module.exports = function (umdConf) {
});
}
};
... ...