找回密码
 注册帐号

扫一扫,访问微社区

基本操作 關於 開啟手機攝像頭並掃描QRCODE請益

0
回复
560
查看
[ 复制链接 ]
3偶尔光临
193/300
排名
10220
昨日变化

5

主题

46

帖子

193

积分

Rank: 3Rank: 3Rank: 3

UID
25941
好友
0
蛮牛币
151
威望
0
注册时间
2014-5-20
在线时间
33 小时
最后登录
2019-11-12
2019-3-28 18:16:36 显示全部楼层 阅读模式
10蛮牛币
大家好,我想問一下
底下這段代碼目前我用我電腦上測試上是OK的
請問一下下方這一段怎麼改成適用於開啟安卓與ios的攝像頭.
並具有相同功能(開啟鏡頭掃描一段QRCODE後解析出QRCODE內容).

謝謝大家幫忙.

using UnityEngine;
using System.Collections;
using ZXing;
using ZXing.QrCode;
using UnityEngine.UI;


//Success
public class pic_scan : MonoBehaviour {

        public Color32[] data;
        private bool isScan;
        public RawImage cameraTexture;
        //public Text txtQRcode;
        private WebCamTexture webCameraTexture;
        private BarcodeReader barcodeReader;
        private float timer = 0;


        IEnumerator Start(){
                barcodeReader = new BarcodeReader();
                yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
                if (Application.HasUserAuthorization(UserAuthorization.WebCam)){
                        WebCamDevice[] devices = WebCamTexture.devices;
                        string devicename = devices[0].name;webCameraTexture = new WebCamTexture(devicename, 400, 300);
                        cameraTexture.texture = webCameraTexture;webCameraTexture.Play();
                        isScan = true;
                }
        }
        void Update(){
                if (isScan){
                        timer += Time.deltaTime;
                        if (timer > 0.2f) //0.2 secs scan once
                        {
                                StartCoroutine(ScanQRcode());
                                timer = 0;
                                //Debug.Log ("2 sec scan");
                        }
                }
        }
        IEnumerator ScanQRcode(){
                data = webCameraTexture.GetPixels32();
                DecodeQR(webCameraTexture.width, webCameraTexture.height);
                yield return new WaitForEndOfFrame();
        }

        private void DecodeQR(int width, int height)
        {
                var br = barcodeReader.Decode(data, width, height);
                if (br != null) {
                        //txtQRcode.text = br.Text;
                        Debug.Log (br.Text);
                        //isScan = false;
                        //webCameraTexture.Stop ();
                }
        }


}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关注游戏蛮牛公众号送vip