forked from harmony_car/subject-two
		
	
		
			
				
	
	
		
			557 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			557 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //@ts-ignore
 | ||
| import camera from '@ohos.multimedia.camera';
 | ||
| import image from '@ohos.multimedia.image'
 | ||
| import util from '@ohos.util';
 | ||
| import { writeFile } from '../../common/service/fileService'
 | ||
| import TopLogo from '../compontents/topLogo'
 | ||
| import { cameraService } from '../../common/service/cameraService'
 | ||
| import { voiceService } from '../../common/service/voiceService'
 | ||
| import { faceCompare } from '../../api/userInfo'
 | ||
| import prompt from '@ohos.prompt'
 | ||
| import grantPermission from '../../common/utils/PermissionUtils';
 | ||
| import CameraModel from '../../common/service/CameraModel';
 | ||
| import FileUtil from '../../common/utils/File'
 | ||
| import { VideoConfig } from '../interfaces'
 | ||
| import common from '@ohos.app.ability.common';
 | ||
| import fs from '@ohos.file.fs'
 | ||
| import onvifclient from '@ohos.onvifclient';
 | ||
| import buffer from '@ohos.buffer';
 | ||
| import mediaLibrary from '@ohos.multimedia.mediaLibrary'
 | ||
| 
 | ||
| // import MediaModel from '../../common/utils/MediaModel';
 | ||
| let previewWidth;
 | ||
| let previewHeight;
 | ||
| 
 | ||
| const PERMISSIONS: Array<string> = [
 | ||
|   'ohos.permission.CAMERA']
 | ||
| 
 | ||
| @Component
 | ||
| export default struct FaceCompare {
 | ||
|   constructor() {
 | ||
|     super()
 | ||
|   }
 | ||
| 
 | ||
|   @State imageBase64: string = 'data:image/jpeg;base64,'
 | ||
|   @Prop sfzh: string;
 | ||
|   @Prop lsh: string;
 | ||
|   @Prop firstImage: string;
 | ||
|   @Link showFaceCompare: boolean;
 | ||
|   @Link faceCompareSucess: number;
 | ||
|   @Link getqkFlag: boolean;
 | ||
|   @Link faceCatchImg: string;
 | ||
|   @State imageThumbnail: string = '';
 | ||
|   private timer = null; //人脸比对执行任务定时器
 | ||
|   private stopClose = false; // 阻止用户关闭此组件
 | ||
|   private times = 1; //人脸比对失败次数, 超过3次将不会自动比对,需要点击重新打开重新触发
 | ||
|   private vocObj = null;
 | ||
|   @State callBackFlag:boolean=false;
 | ||
|   @State @Watch('changeFaceCompareSuccess') showFaceCompare2: Boolean = false;
 | ||
| 
 | ||
|   private surfaceId: string = '';
 | ||
|   @State video_url: string = 'rtsp://admin:12345qwe@192.168.5.41:8000/h264/ch2/main/av_stream'
 | ||
|   private fileAsset: mediaLibrary.FileAsset = undefined;
 | ||
|   @State previewUri: Resource = $r('app.media.2_nor')
 | ||
|   @State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
 | ||
|   @State showControls: boolean = false
 | ||
|   private controller: VideoController = new VideoController()
 | ||
|   @State isAutoPlay: boolean = true
 | ||
|   @State signNum: number = 0;
 | ||
|   private fileUtil: FileUtil
 | ||
|   private interval: any
 | ||
|   private mediaTest: mediaLibrary.MediaLibrary = mediaLibrary.getMediaLibrary(globalThis.abilityContext)
 | ||
|   private fd: number = -1;
 | ||
|   @State param: VideoConfig = {
 | ||
|     spls: '',
 | ||
|     faceFlag: false,
 | ||
|     pztd: '1',
 | ||
|     ljlx: '',
 | ||
|     ip: '192.168.7.112',
 | ||
|     port: '554',
 | ||
|     userName: 'admin',
 | ||
|     pwd: '12345qwe',
 | ||
|     td1: '1',
 | ||
|     td2: '2',
 | ||
|     td3: '3',
 | ||
|     td4: '4',
 | ||
|     videoRecord1: false,
 | ||
|     videoRecord2: false,
 | ||
|     videoRecord3: false,
 | ||
|     videoRecord4: false,
 | ||
|     rlls: '1'
 | ||
|   }
 | ||
|   private context = getContext(this) as common.UIAbilityContext;
 | ||
| 
 | ||
|   build() {
 | ||
|     Column() {
 | ||
|       Column() {
 | ||
|         Text('照片比对')
 | ||
|           .lineHeight('16%')
 | ||
|           .height('16%')
 | ||
|           .fontWeight(FontWeight.Bold)
 | ||
|           .fontSize(24)
 | ||
| 
 | ||
|         Row() {
 | ||
|           Row() {
 | ||
|             Video({
 | ||
|               src: `rtsp://${this.param.userName}:${this.param.pwd}@${this.param.ip}:${this.param.port}/h264/ch${this.param.rlls}/main/av_stream`,
 | ||
|               previewUri: this.previewUri,
 | ||
|               currentProgressRate: PlaybackSpeed.Speed_Forward_1_00_X,
 | ||
|               controller: this.controller,
 | ||
|             })
 | ||
|               .muted(true)
 | ||
|               .width('100%')
 | ||
|               .height('100%')
 | ||
|               .autoPlay(this.isAutoPlay)
 | ||
|               .controls(this.showControls)
 | ||
|           }
 | ||
|           .width('48%')
 | ||
|           .height('100%')
 | ||
| 
 | ||
|           Row() {
 | ||
|             Image(this.firstImage)
 | ||
|               .width('100%')
 | ||
|               .height('100%')
 | ||
|               .backgroundColor(Color.Black)
 | ||
|           }
 | ||
|           .width('48%')
 | ||
|           .height('100%')
 | ||
|         }
 | ||
|         .width('88.9%')
 | ||
|         .height('53.2%')
 | ||
|         .justifyContent(FlexAlign.SpaceBetween)
 | ||
| 
 | ||
|         Text('正在等待拍照…')
 | ||
|           .lineHeight('16%')
 | ||
|           .height('16%')
 | ||
|           .fontWeight(FontWeight.Bold)
 | ||
|           .fontColor('#CC7E00')
 | ||
| 
 | ||
|         Column() {
 | ||
|           Row() {
 | ||
|             Text('若验证无响应,点击此处')
 | ||
|               .lineHeight('100%')
 | ||
|               .height('100%')
 | ||
|               .fontColor('#000000')
 | ||
| 
 | ||
|             Column() {
 | ||
|               Text('重新打开')
 | ||
|                 .lineHeight('100%')
 | ||
|                 .height('100%')
 | ||
|                 .fontColor(Color.White)
 | ||
|                 .fontSize(23)
 | ||
|             }
 | ||
|             .width('22.8%')
 | ||
|             .height('89.9%')
 | ||
|             .backgroundImage($r('app.media.nor'))
 | ||
|             .backgroundImageSize({ width: '100%', height: '100%' })
 | ||
|             .onClick(async () => {
 | ||
|               this.times = 1;
 | ||
|               // this.takePhoto('face_check.mp3');
 | ||
|               // this.readyToTakePhoto(this.surfaceId);
 | ||
|               // await this.cameraObj.releaseSource()
 | ||
|             })
 | ||
|           }
 | ||
|           .width('88.9%')
 | ||
|           .height('100%')
 | ||
|           .justifyContent(FlexAlign.SpaceBetween)
 | ||
|         }
 | ||
|         .width('100%')
 | ||
|         .height('16%')
 | ||
|         .position({ y: '84%' })
 | ||
|         .borderRadius({ topLeft: 0, topRight: 0, bottomLeft: 15, bottomRight: 15 })
 | ||
|         .backgroundColor('#CCC4B8')
 | ||
|       }
 | ||
|       .width('68.75%')
 | ||
|       .height('73.2%')
 | ||
|       .backgroundColor('#E5E3DF')
 | ||
|       .borderRadius(15)
 | ||
|       .margin({ top: '4%' })
 | ||
| 
 | ||
|       Column() {
 | ||
|       }
 | ||
|       .width('8.5%')
 | ||
|       .height('15.1%')
 | ||
|       .backgroundImage($r('app.media.close'))
 | ||
|       .backgroundImageSize({ width: '100%', height: '100%' })
 | ||
|       .onClick(() => {
 | ||
|         // prompt.showToast({
 | ||
|         //   message: '人脸比对程序正在执行,请等待程序执行完毕。',
 | ||
|         //   duration: 3000
 | ||
|         // });
 | ||
|         this.controller.stop()
 | ||
|         this.vocObj&&this.vocObj.releasePlayer()
 | ||
|         this.showFaceCompare = false
 | ||
|         this.showFaceCompare2 = false
 | ||
|         this.faceCompareSucess = -1
 | ||
|         return
 | ||
|         console.log('jiangsong close the faceCompare componet');
 | ||
|         if (!this.stopClose) {
 | ||
|           this.showFaceCompare = false
 | ||
|           this.showFaceCompare2 = false
 | ||
| 
 | ||
| 
 | ||
|         } else {
 | ||
|           prompt.showToast({
 | ||
|             message: '人脸比对程序正在执行,请等待程序执行完毕。',
 | ||
|             duration: 3000
 | ||
|           });
 | ||
|           this.showFaceCompare = false
 | ||
|         }
 | ||
|       })
 | ||
|     }
 | ||
|     .width('100%')
 | ||
|     .height('100%')
 | ||
|     .backgroundColor('rgba(0, 0, 0, 0.8)')
 | ||
|     .position({ x: 0, y: 0 })
 | ||
|   }
 | ||
| 
 | ||
|   onPageShow() {
 | ||
|     // this.cameraModel.initCamera(this.surfaceId);
 | ||
| 
 | ||
|   }
 | ||
|   changeFaceCompareSuccess(){
 | ||
|     this.callBackFlag=false
 | ||
|     clearInterval(this.interval)
 | ||
|     this.vocObj&&this.vocObj.releasePlayer()
 | ||
|   }
 | ||
| 
 | ||
|   async aboutToAppear() {
 | ||
|     this.callBackFlag=false
 | ||
|     clearInterval(this.interval)
 | ||
|     // this.mediaModel = MediaModel.getMediaInstance();
 | ||
|     const fileUtil = new FileUtil(this.context)
 | ||
|     this.fileUtil = fileUtil
 | ||
|     this.getVideoConfig()
 | ||
| 
 | ||
| 
 | ||
|     // this.cameraModel.setTakePictureHandleCallback(this.takePictureHandle.bind(this));
 | ||
|   }
 | ||
|   getqkFn(){
 | ||
|     let tmpList = [];
 | ||
|     // const str =globalThis.signNum
 | ||
|     // for (let i = 0;i < str.length; i++) {
 | ||
|     //   tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
 | ||
|     // }
 | ||
|     // const arr = [globalThis.signNum||0, globalThis.statue||1]
 | ||
|     // let tmpList = [];
 | ||
|     tmpList.push(this.string2Bytes(globalThis.signNum, 1 * 8)[0])
 | ||
|     const param= {id: 41,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId}
 | ||
| 
 | ||
|     globalThis.udpClient2.sendMsg(param, this.context)
 | ||
|   }
 | ||
| 
 | ||
|   async faceComparFn() {
 | ||
|     var loginInfo1 = {
 | ||
|       host: `http://${this.param.ip}:80`, user: "administrator", pass: this.param.pwd }
 | ||
|     // var file_dir = "/data/service/el1/public/netmanager/ethernet/";
 | ||
|     // var result3 = onvifclient.getVideoSnapshot(loginInfo1, video_uri, file_dir);
 | ||
|     // console.info(`baoyihu endRecordVideo  result:` + result3.result + `  pictureFile:` + result3.dataString);
 | ||
|     var mediaTest = mediaLibrary.getMediaLibrary(this.context);
 | ||
|     let mediaType = mediaLibrary.MediaType.IMAGE;
 | ||
|     let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_IMAGE;
 | ||
|     const path = await mediaTest.getPublicDirectory(DIR_DOCUMENTS);
 | ||
| 
 | ||
|     const fileName = 'FaceCompar' + Math.floor(Math.random() * 1000) + '.jpg'
 | ||
|     mediaTest.createAsset(mediaType, fileName, path, (error, asset) => {
 | ||
|       asset.open('rw', (error, fd) => {
 | ||
|         if (fd > 0) {
 | ||
|           var file_path = "/mnt/hmdfs/100/account/device_view/local/files/Pictures/" + fileName
 | ||
|           var result3 = onvifclient.getVideoSnapshot(`rtsp://${this.param.userName}:${this.param.pwd}@${this.param.ip}:${this.param.port}/h264/ch${this.param.rlls}/main/av_stream`, file_path, fd);
 | ||
|           fs.closeSync(fd);
 | ||
|           asset.close(fd);
 | ||
|           // let filePath = pathDir + "/test.txt";
 | ||
|           fs.lstat(file_path).then((stat) => {
 | ||
|             console.info("get link status succeed, the size of file is" + stat.size);
 | ||
|             let file = fs.openSync(file_path, fs.OpenMode.READ_WRITE);
 | ||
|             const size = Number(stat.size) + 100
 | ||
|             let buf = new ArrayBuffer(size);
 | ||
|             let num = fs.readSync(file.fd, buf);
 | ||
|             var that = new util.Base64();
 | ||
|             var array = new Uint8Array(buf);
 | ||
|             var result = that.encodeToStringSync(array); //base64圖片
 | ||
|             //
 | ||
|             mediaTest.deleteAsset(file_path).then(() => {
 | ||
|               console.log('delSuccess')
 | ||
|             }).catch(() => {
 | ||
|               console.log('delError')
 | ||
|             })
 | ||
|             this.fileUtil.deleteF(file_path, 3)
 | ||
|             if(this.firstImage){
 | ||
|               this.faceCatchImg = result
 | ||
|             }else{
 | ||
|               this.faceCatchImg = ''
 | ||
| 
 | ||
|             }
 | ||
| 
 | ||
|             faceCompare({
 | ||
|               sfzh: this.sfzh,
 | ||
|               firstImage:this.firstImage.substr(22),
 | ||
|               // sfzh: '321281198605076819',
 | ||
|               // firstImage: this.firstImage,
 | ||
|               secondImage: result,
 | ||
|               type: 2,
 | ||
|               verifyType: 1
 | ||
|             }).then(res => {
 | ||
|               if (res) {
 | ||
|                 this.controller.stop()
 | ||
|                 console.log('jiangsong face compare success' + JSON.stringify(res))
 | ||
|                 this.showFaceCompare = false
 | ||
|                 this.showFaceCompare2 = false
 | ||
|                 this.faceCompareSucess = 1;
 | ||
|                 // this.faceCatchImg = result
 | ||
|                 this.vocObj.playAudio({
 | ||
|                   type: 1,
 | ||
|                   name: 'yzcg.wav'
 | ||
|                 })
 | ||
|               } else {
 | ||
|                 console.log('jiangsong face compare faild')
 | ||
|                 // this.showFaceCompare = false
 | ||
|                 // this.faceCompareSucess = false;
 | ||
|                 this.times++;
 | ||
|                 //3s后开始语音提示
 | ||
|                 this.vocObj.playAudio({
 | ||
|                   type: 1,
 | ||
|                   name: 'face_fail.mp3'
 | ||
|                 })
 | ||
|                 // this.timer = setTimeout(() => {
 | ||
|                 //   this.takePhoto('face_fail.mp3');
 | ||
|                 // }, 3000)
 | ||
|               }
 | ||
|             })
 | ||
|             // console.log(result)
 | ||
|             //result base64
 | ||
|             // this.fileUtil.deleteF(file_path,3)
 | ||
|           }).catch((err) => {
 | ||
|             console.info("get link status failed with error message: " + err.message + ", error code: " + err.code);
 | ||
|           });
 | ||
|         } else {
 | ||
|           console.error('baoyihu getVideoSnapshot File Open failed with error: ' + error);
 | ||
|         }
 | ||
|       });
 | ||
|     });
 | ||
| 
 | ||
|   }
 | ||
|   async heartMsg(context) {
 | ||
|     let tmpList=[]
 | ||
|     const str =this.lsh
 | ||
|     for (let i = 0;i < str.length; i++) {
 | ||
|       tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
 | ||
|     }
 | ||
|     const param = { id: 46, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId,callback:()=>{
 | ||
|       console.log('46send')
 | ||
|       this.callBackFlag=true
 | ||
|     }}
 | ||
|     this.interval=setInterval(()=>{
 | ||
|       console.log('klklklk',this.callBackFlag)
 | ||
|       if(this.callBackFlag){
 | ||
|         console.log('klklklk')
 | ||
|         const param2 = { id: 47, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId }
 | ||
|         globalThis.udpClient2&&globalThis.udpClient2.sendMsg(param2,this.context)
 | ||
|       }
 | ||
|     },1000)
 | ||
|     // const param = { id: 31, list: tmpList, carNo: 489, placeId: 62 }
 | ||
|     globalThis.udpClient2&&globalThis.udpClient2.sendMsg(param, this.context)
 | ||
| 
 | ||
| 
 | ||
|     // return {id: 31,list:tmpList,carNo:489,placeId:62}
 | ||
|   }
 | ||
|   async getVideoConfig() {
 | ||
|     const data = await this.fileUtil.readFile('/mnt/hmdfs/100/account/device_view/localfiles/files/config/config3.txt');
 | ||
|     console.log('data,data',data)
 | ||
|     if(!data){
 | ||
|       this.vocObj = new voiceService(async (status, val, next) => {
 | ||
|         if (status == 'idle') {
 | ||
|           if (val == 'face_check.mp3' || val == 'face_fail.mp3') {
 | ||
|             console.log('this.time',this.times)
 | ||
|             if (this.times >=3) {
 | ||
|               this.vocObj&&this.vocObj.playAudio({
 | ||
|                 type: 1,
 | ||
|                 name: 'face_checking.wav'
 | ||
|               })
 | ||
|               // this.showFaceCompare = false
 | ||
|               globalThis.statue=3
 | ||
|               this.faceCompareSucess = -1;
 | ||
|               this.heartMsg(this.context)
 | ||
|             }else{
 | ||
|               setTimeout(()=>{
 | ||
|                 this.faceComparFn()
 | ||
|               },2000)
 | ||
|             }
 | ||
|           } else if (val == 'yzcg.wav') {
 | ||
|             // this.sfbdinterfaceFn()
 | ||
|             this.showFaceCompare = false
 | ||
|             this.showFaceCompare2 = false
 | ||
|             this.vocObj&&this.vocObj.releasePlayer()
 | ||
|             globalThis.statue=4
 | ||
|             this.faceCompareSucess = 1;
 | ||
|           }else if(val=='face_checking.wav'){
 | ||
|             // globalThis.statue=3
 | ||
|             this.faceCompareSucess = -1;
 | ||
|             this.callBackFlag=false
 | ||
|             this.vocObj&&this.vocObj.releasePlayer()
 | ||
|           }else if(val=='face_chekc_fail.wav'){
 | ||
|             this.vocObj&&this.vocObj.releasePlayer()
 | ||
|             this.faceCompareSucess=-1
 | ||
|             this.showFaceCompare = false
 | ||
|             this.showFaceCompare2 = false
 | ||
|             this.callBackFlag=false
 | ||
|           }
 | ||
|         }
 | ||
|       });
 | ||
|       return
 | ||
|     }
 | ||
|     this.param = JSON.parse(data)
 | ||
|     // this.param.userName = JSON.parse(data).userName
 | ||
|     // this.param.ip = JSON.parse(data).ip
 | ||
|     // this.param.pwd = JSON.parse(data).pwd
 | ||
|     // this.param.port = JSON.parse(data).port
 | ||
|     // this.param.rlls = JSON.parse(data).rlls
 | ||
|     console.log('this.parm', this.param.userName, this.param.pwd, this.param.ip, this.param.port, this.param.rlls)
 | ||
|     this.controller.start()
 | ||
|     // this.video_url = `rtsp://${this.param.userName}:${this.param.pwd}@${this.param.ip}:${this.param.port}/h264/ch${this.param.rlls}/main/av_stream`;
 | ||
|     this.vocObj = new voiceService(async (status, val, next) => {
 | ||
|       if (status == 'idle') {
 | ||
|         if (val == 'face_check.mp3' || val == 'face_fail.mp3') {
 | ||
|           if (this.times >= 3) {
 | ||
|             // this.showFaceCompare = false
 | ||
|             globalThis.statue=3
 | ||
|             this.faceCompareSucess = -1;
 | ||
|             this.vocObj&&this.vocObj.playAudio({
 | ||
|               type: 1,
 | ||
|               name: 'face_checking.wav'
 | ||
|             })
 | ||
|             this.heartMsg(this.context)
 | ||
|           }else{
 | ||
|             setTimeout(()=>{
 | ||
|               this.faceComparFn()
 | ||
|             },2000)
 | ||
|           }
 | ||
|         } else if (val == 'yzcg.wav') {
 | ||
|           // this.sfbdinterfaceFn()
 | ||
|           this.showFaceCompare = false
 | ||
|           this.showFaceCompare2 = false
 | ||
|           globalThis.statue=4
 | ||
|           this.faceCompareSucess = 1;
 | ||
|           this.vocObj&&this.vocObj.releasePlayer()
 | ||
| 
 | ||
|         } else if(val=='face_chekc_fail.wav'){
 | ||
|           this.vocObj&&this.vocObj.releasePlayer()
 | ||
|           this.faceCompareSucess=-1
 | ||
|           this.showFaceCompare = false
 | ||
|           this.showFaceCompare2 = false
 | ||
|           this.callBackFlag=false
 | ||
|         }
 | ||
|         // else if(val=='face_checking.wav'){
 | ||
|         //   // console.log('kkkk')
 | ||
|         //   this.vocObj&&this.vocObj.releasePlayer()
 | ||
|         //   // globalThis.statue=3
 | ||
|         //   // this.faceCompareSucess = -1;
 | ||
|         // }
 | ||
|       }
 | ||
|     });
 | ||
|     setTimeout(() => {
 | ||
|       this.vocObj&&this.vocObj.playAudio({
 | ||
|         type: 1,
 | ||
|         name: 'face_check.mp3'
 | ||
|       })
 | ||
|     }, 1000)
 | ||
|     this.setUdp()
 | ||
|     // this.cameraModel.initCamera(this.surfaceId);
 | ||
| 
 | ||
|   }
 | ||
|   setUdp(){
 | ||
|     const that=this
 | ||
|     globalThis.udpClient2&&globalThis.udpClient2.onMessage((val)=>{
 | ||
|       console.log('qkqkqk',val.id,val.body)
 | ||
|       if(val.id=='32'){
 | ||
|         globalThis.signNum=val.body[1]
 | ||
|         if(val.body[0]=='7'){
 | ||
|           this.getqkFn()
 | ||
|           this.signNum=val.body[1]
 | ||
|         }
 | ||
|       }else if(val.id=='48'){
 | ||
|         if(val.body[13]=='1'){
 | ||
|           that.showFaceCompare = false
 | ||
|           that.showFaceCompare2 = false
 | ||
|           that.vocObj&&that.vocObj.releasePlayer()
 | ||
|           that.faceCompareSucess=1
 | ||
|           this.callBackFlag=false
 | ||
|           clearInterval(that.interval)
 | ||
|         }else if(val.body[13]=='0'&&this.callBackFlag){
 | ||
|           this.callBackFlag=false
 | ||
|           globalThis.statue=2
 | ||
|           console.log('callBackFlag',this.callBackFlag)
 | ||
|           that.vocObj&&that.vocObj.playAudio({
 | ||
|             type: 1,
 | ||
|             name: 'face_chekc_fail.wav'
 | ||
|           })
 | ||
|         }
 | ||
|       }else if(val.id=='42'){
 | ||
|         console.log('qkqkqk')
 | ||
|         this.getqkFlag=!this.getqkFlag
 | ||
|       }
 | ||
|     })
 | ||
|   }
 | ||
|   fillZero(str, len) {
 | ||
|     str = str + '';
 | ||
|     if (str.length > len || !len) {
 | ||
|       return str
 | ||
|     }
 | ||
| 
 | ||
|     let num = len - str.length;
 | ||
|     let zeroStr = '';
 | ||
|     for (var i = 0; i < num; i++) {
 | ||
|       zeroStr = zeroStr + '0'
 | ||
|     }
 | ||
| 
 | ||
|     return zeroStr + str;
 | ||
|   }
 | ||
| 
 | ||
|   // takePictureHandle = (thumbnail: string) => {
 | ||
|   //   this.imageThumbnail = thumbnail;
 | ||
|   // };
 | ||
|   string2Bytes(number, len) {
 | ||
|     // console.log('string2Bytes == ', number)
 | ||
|     let  str = (+number).toString(2);
 | ||
|     if(str.length > len) {
 | ||
|       console.log('数据长度不对~~');
 | ||
|       return
 | ||
|     }
 | ||
|     var byteString = this.fillZero(str, len);
 | ||
| 
 | ||
|     var arrBytes = new Array();
 | ||
|     for (var i = byteString.length; i > 0;) {
 | ||
|       let j = i - 8;
 | ||
|       if (j < 0) {
 | ||
|         j = 0
 | ||
|       }
 | ||
|       var s = byteString.slice(j, i);
 | ||
|       var v = parseInt(s, 2);
 | ||
|       arrBytes.push(v);
 | ||
|       i = i - 8
 | ||
| 
 | ||
|     }
 | ||
|     return arrBytes;
 | ||
|   }
 | ||
| 
 | ||
|   async aboutToDisappear() {
 | ||
|     // this.mediaModel = MediaModel.getMediaInstance();
 | ||
| 
 | ||
|   }
 | ||
| 
 | ||
|   takePhoto(name) {
 | ||
|     this.stopClose = true;
 | ||
|     if (this.times > 3) {
 | ||
|       this.stopClose = false;
 | ||
|       return;
 | ||
|     }
 | ||
|     this.times++;
 | ||
| 
 | ||
|     // this.vocObj.playAudio({
 | ||
|     //   type: 1,
 | ||
|     //   name: name
 | ||
|     // })
 | ||
|   }
 | ||
| }
 | ||
| 
 |