|  | @@ -6,11 +6,17 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	  WEBRTC_ICE_CANDIDATE_ERROR: 'WEBRTC_ICE_CANDIDATE_ERROR',
 | 
	
		
			
				|  |  |  	  WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED: 'WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED',
 | 
	
		
			
				|  |  |  	  WEBRTC_ON_REMOTE_STREAMS: 'WEBRTC_ON_REMOTE_STREAMS',
 | 
	
		
			
				|  |  | -	  WEBRTC_ON_LOCAL_STREAM: 'WEBRTC_ON_LOCAL_STREAM'
 | 
	
		
			
				|  |  | +	  WEBRTC_ON_LOCAL_STREAM: 'WEBRTC_ON_LOCAL_STREAM',
 | 
	
		
			
				|  |  | +	  WEBRTC_ON_CONNECTION_STATE_CHANGE: 'WEBRTC_ON_CONNECTION_STATE_CHANGE',
 | 
	
		
			
				|  |  | +	  WEBRTC_ON_DATA_CHANNEL_OPEN: 'WEBRTC_ON_DATA_CHANNEL_OPEN',
 | 
	
		
			
				|  |  | +	  WEBRTC_ON_DATA_CHANNEL_CLOSE: 'WEBRTC_ON_DATA_CHANNEL_CLOSE',
 | 
	
		
			
				|  |  | +	  WEBRTC_ON_DATA_CHANNEL_ERR: 'WEBRTC_ON_DATA_CHANNEL_ERR',
 | 
	
		
			
				|  |  | +	  WEBRTC_ON_DATA_CHANNEL_MSG: 'WEBRTC_ON_DATA_CHANNEL_MSG',
 | 
	
		
			
				|  |  | +	  CAPTURE_STREAM_FAILED: 'CAPTURE_STREAM_FAILED'
 | 
	
		
			
				|  |  |  	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	const VERSION = '1.0.1';
 | 
	
		
			
				|  |  | -	const BUILD_DATE = 'Mon Apr 05 2021 10:22:48 GMT+0800 (中国标准时间)';
 | 
	
		
			
				|  |  | +	const BUILD_DATE = 'Thu Mar 24 2022 17:42:57 GMT+0800 (China Standard Time)';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// Copyright (C) <2018> Intel Corporation
 | 
	
		
			
				|  |  |  	//
 | 
	
	
		
			
				|  | @@ -7284,11 +7290,16 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	      debug: false,
 | 
	
		
			
				|  |  |  	      // if output debug log
 | 
	
		
			
				|  |  |  	      zlmsdpUrl: '',
 | 
	
		
			
				|  |  | -	      simulecast: false,
 | 
	
		
			
				|  |  | +	      simulcast: false,
 | 
	
		
			
				|  |  |  	      useCamera: true,
 | 
	
		
			
				|  |  |  	      audioEnable: true,
 | 
	
		
			
				|  |  |  	      videoEnable: true,
 | 
	
		
			
				|  |  | -	      recvOnly: false
 | 
	
		
			
				|  |  | +	      recvOnly: false,
 | 
	
		
			
				|  |  | +	      resolution: {
 | 
	
		
			
				|  |  | +	        w: 0,
 | 
	
		
			
				|  |  | +	        h: 0
 | 
	
		
			
				|  |  | +	      },
 | 
	
		
			
				|  |  | +	      usedatachannel: false
 | 
	
		
			
				|  |  |  	    };
 | 
	
		
			
				|  |  |  	    this.options = Object.assign({}, defaults, options);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -7299,7 +7310,12 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	    this.e = {
 | 
	
		
			
				|  |  |  	      onicecandidate: this._onIceCandidate.bind(this),
 | 
	
		
			
				|  |  |  	      ontrack: this._onTrack.bind(this),
 | 
	
		
			
				|  |  | -	      onicecandidateerror: this._onIceCandidateError.bind(this)
 | 
	
		
			
				|  |  | +	      onicecandidateerror: this._onIceCandidateError.bind(this),
 | 
	
		
			
				|  |  | +	      onconnectionstatechange: this._onconnectionstatechange.bind(this),
 | 
	
		
			
				|  |  | +	      ondatachannelopen: this._onDataChannelOpen.bind(this),
 | 
	
		
			
				|  |  | +	      ondatachannelmsg: this._onDataChannelMsg.bind(this),
 | 
	
		
			
				|  |  | +	      ondatachannelerr: this._onDataChannelErr.bind(this),
 | 
	
		
			
				|  |  | +	      ondatachannelclose: this._onDataChannelClose.bind(this)
 | 
	
		
			
				|  |  |  	    };
 | 
	
		
			
				|  |  |  	    this._remoteStream = null;
 | 
	
		
			
				|  |  |  	    this._localStream = null;
 | 
	
	
		
			
				|  | @@ -7307,6 +7323,17 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	    this.pc.onicecandidate = this.e.onicecandidate;
 | 
	
		
			
				|  |  |  	    this.pc.onicecandidateerror = this.e.onicecandidateerror;
 | 
	
		
			
				|  |  |  	    this.pc.ontrack = this.e.ontrack;
 | 
	
		
			
				|  |  | +	    this.pc.onconnectionstatechange = this.e.onconnectionstatechange;
 | 
	
		
			
				|  |  | +	    this.datachannel = null;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	    if (this.options.usedatachannel) {
 | 
	
		
			
				|  |  | +	      this.datachannel = this.pc.createDataChannel('chat');
 | 
	
		
			
				|  |  | +	      this.datachannel.onclose = this.e.ondatachannelclose;
 | 
	
		
			
				|  |  | +	      this.datachannel.onerror = this.e.ondatachannelerr;
 | 
	
		
			
				|  |  | +	      this.datachannel.onmessage = this.e.ondatachannelmsg;
 | 
	
		
			
				|  |  | +	      this.datachannel.onopen = this.e.ondatachannelopen;
 | 
	
		
			
				|  |  | +	    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	    if (!this.options.recvOnly && (this.options.audioEnable || this.options.videoEnable)) this.start();else this.receive();
 | 
	
		
			
				|  |  |  	  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -7337,7 +7364,7 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	          let ret = response.data; //JSON.parse(response.data);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	          if (ret.code != 0) {
 | 
	
		
			
				|  |  | -	            // mean failed for offer/anwser exchange
 | 
	
		
			
				|  |  | +	            // mean failed for offer/anwser exchange 
 | 
	
		
			
				|  |  |  	            this.dispatch(Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED, ret);
 | 
	
		
			
				|  |  |  	            return;
 | 
	
		
			
				|  |  |  	          }
 | 
	
	
		
			
				|  | @@ -7347,7 +7374,7 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	          anwser.type = 'answer';
 | 
	
		
			
				|  |  |  	          log(this.TAG, 'answer:', ret.sdp);
 | 
	
		
			
				|  |  |  	          this.pc.setRemoteDescription(anwser).then(() => {
 | 
	
		
			
				|  |  | -	            log(this.TAG, 'set remote success');
 | 
	
		
			
				|  |  | +	            log(this.TAG, 'set remote sucess');
 | 
	
		
			
				|  |  |  	          }).catch(e => {
 | 
	
		
			
				|  |  |  	            error(this.TAG, e);
 | 
	
		
			
				|  |  |  	          });
 | 
	
	
		
			
				|  | @@ -7377,6 +7404,10 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	      }
 | 
	
		
			
				|  |  |  	    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	    if (this.options.resolution.w != 0 && this.options.resolution.h != 0 && typeof videoConstraints == 'object') {
 | 
	
		
			
				|  |  | +	      videoConstraints.resolution = new Resolution(this.options.resolution.w, this.options.resolution.h);
 | 
	
		
			
				|  |  | +	    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	    MediaStreamFactory.createMediaStream(new StreamConstraints(audioConstraints, videoConstraints)).then(stream => {
 | 
	
		
			
				|  |  |  	      this._localStream = stream;
 | 
	
		
			
				|  |  |  	      this.dispatch(Events$1.WEBRTC_ON_LOCAL_STREAM, stream);
 | 
	
	
		
			
				|  | @@ -7389,33 +7420,40 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	        sendEncodings: []
 | 
	
		
			
				|  |  |  	      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	      if (this.options.simulecast && stream.getVideoTracks().length > 0) {
 | 
	
		
			
				|  |  | +	      if (this.options.simulcast && stream.getVideoTracks().length > 0) {
 | 
	
		
			
				|  |  |  	        VideoTransceiverInit.sendEncodings = [{
 | 
	
		
			
				|  |  | -	          rid: 'q',
 | 
	
		
			
				|  |  | +	          rid: 'h',
 | 
	
		
			
				|  |  |  	          active: true,
 | 
	
		
			
				|  |  | -	          scaleResolutionDownBy: 4.0
 | 
	
		
			
				|  |  | +	          maxBitrate: 1000000
 | 
	
		
			
				|  |  |  	        }, {
 | 
	
		
			
				|  |  | -	          rid: 'h',
 | 
	
		
			
				|  |  | +	          rid: 'm',
 | 
	
		
			
				|  |  |  	          active: true,
 | 
	
		
			
				|  |  | -	          scaleResolutionDownBy: 2.0
 | 
	
		
			
				|  |  | +	          maxBitrate: 500000,
 | 
	
		
			
				|  |  | +	          scaleResolutionDownBy: 2
 | 
	
		
			
				|  |  |  	        }, {
 | 
	
		
			
				|  |  | -	          rid: 'f',
 | 
	
		
			
				|  |  | -	          active: true
 | 
	
		
			
				|  |  | +	          rid: 'l',
 | 
	
		
			
				|  |  | +	          active: true,
 | 
	
		
			
				|  |  | +	          maxBitrate: 200000,
 | 
	
		
			
				|  |  | +	          scaleResolutionDownBy: 4
 | 
	
		
			
				|  |  |  	        }];
 | 
	
		
			
				|  |  |  	      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	      if (stream.getAudioTracks().length > 0) {
 | 
	
		
			
				|  |  | -	        this.pc.addTransceiver(stream.getAudioTracks()[0], AudioTransceiverInit);
 | 
	
		
			
				|  |  | -	      } else {
 | 
	
		
			
				|  |  | -	        AudioTransceiverInit.direction = 'recvonly';
 | 
	
		
			
				|  |  | -	        this.pc.addTransceiver('audio', AudioTransceiverInit);
 | 
	
		
			
				|  |  | +	      if (this.options.audioEnable) {
 | 
	
		
			
				|  |  | +	        if (stream.getAudioTracks().length > 0) {
 | 
	
		
			
				|  |  | +	          this.pc.addTransceiver(stream.getAudioTracks()[0], AudioTransceiverInit);
 | 
	
		
			
				|  |  | +	        } else {
 | 
	
		
			
				|  |  | +	          AudioTransceiverInit.direction = 'recvonly';
 | 
	
		
			
				|  |  | +	          this.pc.addTransceiver('audio', AudioTransceiverInit);
 | 
	
		
			
				|  |  | +	        }
 | 
	
		
			
				|  |  |  	      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	      if (stream.getVideoTracks().length > 0) {
 | 
	
		
			
				|  |  | -	        this.pc.addTransceiver(stream.getVideoTracks()[0], VideoTransceiverInit);
 | 
	
		
			
				|  |  | -	      } else {
 | 
	
		
			
				|  |  | -	        VideoTransceiverInit.direction = 'recvonly';
 | 
	
		
			
				|  |  | -	        this.pc.addTransceiver('video', VideoTransceiverInit);
 | 
	
		
			
				|  |  | +	      if (this.options.videoEnable) {
 | 
	
		
			
				|  |  | +	        if (stream.getVideoTracks().length > 0) {
 | 
	
		
			
				|  |  | +	          this.pc.addTransceiver(stream.getVideoTracks()[0], VideoTransceiverInit);
 | 
	
		
			
				|  |  | +	        } else {
 | 
	
		
			
				|  |  | +	          VideoTransceiverInit.direction = 'recvonly';
 | 
	
		
			
				|  |  | +	          this.pc.addTransceiver('video', VideoTransceiverInit);
 | 
	
		
			
				|  |  | +	        }
 | 
	
		
			
				|  |  |  	      }
 | 
	
		
			
				|  |  |  	      /*
 | 
	
		
			
				|  |  |  	      stream.getTracks().forEach((track,idx)=>{
 | 
	
	
		
			
				|  | @@ -7440,7 +7478,7 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	            let ret = response.data; //JSON.parse(response.data);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	            if (ret.code != 0) {
 | 
	
		
			
				|  |  | -	              // mean failed for offer/anwser exchange
 | 
	
		
			
				|  |  | +	              // mean failed for offer/anwser exchange 
 | 
	
		
			
				|  |  |  	              this.dispatch(Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED, ret);
 | 
	
		
			
				|  |  |  	              return;
 | 
	
		
			
				|  |  |  	            }
 | 
	
	
		
			
				|  | @@ -7450,7 +7488,7 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	            anwser.type = 'answer';
 | 
	
		
			
				|  |  |  	            log(this.TAG, 'answer:', ret.sdp);
 | 
	
		
			
				|  |  |  	            this.pc.setRemoteDescription(anwser).then(() => {
 | 
	
		
			
				|  |  | -	              log(this.TAG, 'set remote success');
 | 
	
		
			
				|  |  | +	              log(this.TAG, 'set remote sucess');
 | 
	
		
			
				|  |  |  	            }).catch(e => {
 | 
	
		
			
				|  |  |  	              error(this.TAG, e);
 | 
	
		
			
				|  |  |  	            });
 | 
	
	
		
			
				|  | @@ -7460,7 +7498,7 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	        error(this.TAG, e);
 | 
	
		
			
				|  |  |  	      });
 | 
	
		
			
				|  |  |  	    }).catch(e => {
 | 
	
		
			
				|  |  | -	      error(this.TAG, e);
 | 
	
		
			
				|  |  | +	      this.dispatch(Events$1.CAPTURE_STREAM_FAILED); //debug.error(this.TAG,e);
 | 
	
		
			
				|  |  |  	    }); //const offerOptions = {};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	    /*
 | 
	
	
		
			
				|  | @@ -7495,7 +7533,48 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  	    this.dispatch(Events$1.WEBRTC_ICE_CANDIDATE_ERROR, event);
 | 
	
		
			
				|  |  |  	  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	  _onconnectionstatechange(event) {
 | 
	
		
			
				|  |  | +	    this.dispatch(Events$1.WEBRTC_ON_CONNECTION_STATE_CHANGE, this.pc.connectionState);
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  _onDataChannelOpen(event) {
 | 
	
		
			
				|  |  | +	    log(this.TAG, 'ondatachannel open:', event);
 | 
	
		
			
				|  |  | +	    this.dispatch(Events$1.WEBRTC_ON_DATA_CHANNEL_OPEN, event);
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  _onDataChannelMsg(event) {
 | 
	
		
			
				|  |  | +	    log(this.TAG, 'ondatachannel msg:', event);
 | 
	
		
			
				|  |  | +	    this.dispatch(Events$1.WEBRTC_ON_DATA_CHANNEL_MSG, event);
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  _onDataChannelErr(event) {
 | 
	
		
			
				|  |  | +	    log(this.TAG, 'ondatachannel err:', event);
 | 
	
		
			
				|  |  | +	    this.dispatch(Events$1.WEBRTC_ON_DATA_CHANNEL_ERR, event);
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  _onDataChannelClose(event) {
 | 
	
		
			
				|  |  | +	    log(this.TAG, 'ondatachannel close:', event);
 | 
	
		
			
				|  |  | +	    this.dispatch(Events$1.WEBRTC_ON_DATA_CHANNEL_CLOSE, event);
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  sendMsg(data) {
 | 
	
		
			
				|  |  | +	    if (this.datachannel != null) {
 | 
	
		
			
				|  |  | +	      this.datachannel.send(data);
 | 
	
		
			
				|  |  | +	    } else {
 | 
	
		
			
				|  |  | +	      error(this.TAG, 'data channel is null');
 | 
	
		
			
				|  |  | +	    }
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  closeDataChannel() {
 | 
	
		
			
				|  |  | +	    if (this.datachannel) {
 | 
	
		
			
				|  |  | +	      this.datachannel.close();
 | 
	
		
			
				|  |  | +	      this.datachannel = null;
 | 
	
		
			
				|  |  | +	    }
 | 
	
		
			
				|  |  | +	  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	  close() {
 | 
	
		
			
				|  |  | +	    this.closeDataChannel();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	    if (this.pc) {
 | 
	
		
			
				|  |  |  	      this.pc.close();
 | 
	
		
			
				|  |  |  	      this.pc = null;
 | 
	
	
		
			
				|  | @@ -7528,15 +7607,108 @@ var ZLMRTCClient = (function (exports) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	const quickScan = [{
 | 
	
		
			
				|  |  | +	  'label': '4K(UHD)',
 | 
	
		
			
				|  |  | +	  'width': 3840,
 | 
	
		
			
				|  |  | +	  'height': 2160
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': '1080p(FHD)',
 | 
	
		
			
				|  |  | +	  'width': 1920,
 | 
	
		
			
				|  |  | +	  'height': 1080
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': 'UXGA',
 | 
	
		
			
				|  |  | +	  'width': 1600,
 | 
	
		
			
				|  |  | +	  'height': 1200,
 | 
	
		
			
				|  |  | +	  'ratio': '4:3'
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': '720p(HD)',
 | 
	
		
			
				|  |  | +	  'width': 1280,
 | 
	
		
			
				|  |  | +	  'height': 720
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': 'SVGA',
 | 
	
		
			
				|  |  | +	  'width': 800,
 | 
	
		
			
				|  |  | +	  'height': 600
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': 'VGA',
 | 
	
		
			
				|  |  | +	  'width': 640,
 | 
	
		
			
				|  |  | +	  'height': 480
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': '360p(nHD)',
 | 
	
		
			
				|  |  | +	  'width': 640,
 | 
	
		
			
				|  |  | +	  'height': 360
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': 'CIF',
 | 
	
		
			
				|  |  | +	  'width': 352,
 | 
	
		
			
				|  |  | +	  'height': 288
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': 'QVGA',
 | 
	
		
			
				|  |  | +	  'width': 320,
 | 
	
		
			
				|  |  | +	  'height': 240
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': 'QCIF',
 | 
	
		
			
				|  |  | +	  'width': 176,
 | 
	
		
			
				|  |  | +	  'height': 144
 | 
	
		
			
				|  |  | +	}, {
 | 
	
		
			
				|  |  | +	  'label': 'QQVGA',
 | 
	
		
			
				|  |  | +	  'width': 160,
 | 
	
		
			
				|  |  | +	  'height': 120
 | 
	
		
			
				|  |  | +	}];
 | 
	
		
			
				|  |  | +	function GetSupportCameraResolutions$1() {
 | 
	
		
			
				|  |  | +	  return new Promise(function (resolve, reject) {
 | 
	
		
			
				|  |  | +	    let resolutions = [];
 | 
	
		
			
				|  |  | +	    let ok = 0;
 | 
	
		
			
				|  |  | +	    let err = 0;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	    for (let i = 0; i < quickScan.length; ++i) {
 | 
	
		
			
				|  |  | +	      let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);
 | 
	
		
			
				|  |  | +	      videoConstraints.resolution = new Resolution(quickScan[i].width, quickScan[i].height);
 | 
	
		
			
				|  |  | +	      MediaStreamFactory.createMediaStream(new StreamConstraints(false, videoConstraints)).then(stream => {
 | 
	
		
			
				|  |  | +	        resolutions.push(quickScan[i]);
 | 
	
		
			
				|  |  | +	        ok++;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	        if (ok + err == quickScan.length) {
 | 
	
		
			
				|  |  | +	          resolve(resolutions);
 | 
	
		
			
				|  |  | +	        }
 | 
	
		
			
				|  |  | +	      }).catch(e => {
 | 
	
		
			
				|  |  | +	        err++;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	        if (ok + err == quickScan.length) {
 | 
	
		
			
				|  |  | +	          resolve(resolutions);
 | 
	
		
			
				|  |  | +	        }
 | 
	
		
			
				|  |  | +	      });
 | 
	
		
			
				|  |  | +	    }
 | 
	
		
			
				|  |  | +	  });
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	function GetAllScanResolution$1() {
 | 
	
		
			
				|  |  | +	  return quickScan;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	function isSupportResolution$1(w, h) {
 | 
	
		
			
				|  |  | +	  return new Promise(function (resolve, reject) {
 | 
	
		
			
				|  |  | +	    let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);
 | 
	
		
			
				|  |  | +	    videoConstraints.resolution = new Resolution(w, h);
 | 
	
		
			
				|  |  | +	    MediaStreamFactory.createMediaStream(new StreamConstraints(false, videoConstraints)).then(stream => {
 | 
	
		
			
				|  |  | +	      resolve();
 | 
	
		
			
				|  |  | +	    }).catch(e => {
 | 
	
		
			
				|  |  | +	      reject(e);
 | 
	
		
			
				|  |  | +	    });
 | 
	
		
			
				|  |  | +	  });
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	console.log('build date:', BUILD_DATE);
 | 
	
		
			
				|  |  |  	console.log('version:', VERSION);
 | 
	
		
			
				|  |  |  	const Events = Events$1;
 | 
	
		
			
				|  |  |  	const Media = media;
 | 
	
		
			
				|  |  |  	const Endpoint = RTCEndpoint;
 | 
	
		
			
				|  |  | +	const GetSupportCameraResolutions = GetSupportCameraResolutions$1;
 | 
	
		
			
				|  |  | +	const GetAllScanResolution = GetAllScanResolution$1;
 | 
	
		
			
				|  |  | +	const isSupportResolution = isSupportResolution$1;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	exports.Endpoint = Endpoint;
 | 
	
		
			
				|  |  |  	exports.Events = Events;
 | 
	
		
			
				|  |  | +	exports.GetAllScanResolution = GetAllScanResolution;
 | 
	
		
			
				|  |  | +	exports.GetSupportCameraResolutions = GetSupportCameraResolutions;
 | 
	
		
			
				|  |  |  	exports.Media = Media;
 | 
	
		
			
				|  |  | +	exports.isSupportResolution = isSupportResolution;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	Object.defineProperty(exports, '__esModule', { value: true });
 | 
	
		
			
				|  |  |  
 |