void ReloadDataHandle(ImageTarget imageTarget, VideoTargetDate data) { for (int i = 0; i < videoTargetControllers.Count; i++) { if (videoTargetControllers[i].m_data.id == data.id) { videoTargetControllers[i].UpdateData(data); } } }
//初始化本地视频 void InitLocalVideoCardTarget(VideoTargetDate data) { //var gameObj = new GameObject(imageTarget.Name); //gameObj.transform.SetParent(manager.transform); ImageTrackerBehaviour tracker = FindObjectOfType <ImageTrackerBehaviour>(); GameObject _gameObj = new GameObject(data.targetUid); _gameObj.transform.localPosition = Vector3.zero; var targetBehaviour = _gameObj.AddComponent <CloudARVideoTargetBehaviour>(); targetBehaviour.TargetFound += OnTargetFound; targetBehaviour.Bind(tracker); targetBehaviour.SetupWithImage(data.timeImgSrc, StorageType.Absolute, data.targetUid, Vector2.one * 12f); App.MgrPrefab.Create(_gameObj, "VideoTarget", Vector3.zero, (gameObj) => { gameObj.GetComponentInChildren <VideoTargetController>().Init(data, false); }); }
//初始化视频 void InitVideoCardTarget(ImageTarget imageTarget, VideoTargetDate data) { //var gameObj = new GameObject(imageTarget.Name); //gameObj.transform.SetParent(manager.transform); GameObject _gameObj = new GameObject(imageTarget.Uid); var targetBehaviour = _gameObj.AddComponent <CloudARVideoTargetBehaviour>(); if (!targetBehaviour.SetupWithTarget(imageTarget)) { return; } targetBehaviour.Bind(trackerBehaviour); targetBehaviour.TargetFound += OnTargetFound; App.MgrPrefab.Create(_gameObj, "VideoTarget", Vector3.zero, (gameObj) => { gameObj.GetComponentInChildren <VideoTargetController> ().Init(data); gameObj.GetComponentInChildren <VideoTargetController>().imageTarget = imageTarget; }); }
//初始化 public void Init(VideoTargetDate data, bool isCloud = true) { cam = GameObject.Find("ARCamera").transform; this.isCloud = isCloud; targetName = data.targetUid; ARCardTarget = transform.GetComponentInParent <ImageTargetBaseBehaviour>(); ARCardTarget.TargetFound += OnTargetFound; ARCardTarget.TargetLost += OnTargetLost; cloudArManager = GameObject.FindObjectOfType <CloudARManager>(); cloudArManager.videoTargetControllers.Add(this); m_data = data; this.selectedNumber = 0; videoTargetBehaviour = GetComponentInParent <CloudARVideoTargetBehaviour> (); videoTargetBehaviour.TargetFound += OnTargetFound_First; transform.localScale = Vector3.one; //vPlayer.transform.rotation=Quaternion.Euler(new Vector3(180f,0,0)); //准备完后自动播放 vPlayer.VideoReadyEvent += (sender, e) => { //GameObject.FindObjectOfType<UIManager>().DebugToUI("ready"); //激活视频collider(允许点击暂停) videoCollider.enabled = true; vPlayer.Play(); }; //播放结束后暂停 vPlayer.VideoReachEndEvent += (sender, e) => { //GameObject.FindObjectOfType<UIManager>().DebugToUI("reachEnd"); //停止播放 //PauseVideo(); //如果是第一次就展开动画 if (isFirst) { StopCoroutine("IE_Spreadout"); StartCoroutine("IE_Spreadout"); isFirst = false; } }; RefreshUI(); UIManager._instance.DebugToUI("videoPlayer path: " + ARCardTarget.Path); }
public void UpdateData(VideoTargetDate data) { m_data = data; this.selectedNumber = 0; RefreshUI(); }
IEnumerator LoadLocalImageTarget(string pwd, System.Action <VideoTargetDate> handle, System.Action errorHandle) { Dictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("Content-Type", "application/json"); //headers.Add("token", App.MgrConfig._token); JsonData data = new JsonData(); data["password"] = pwd; data["id"] = App.MgrConfig._id; //byte[] bs = System.Text.UTF8Encoding.UTF8.GetBytes(data.ToJson()); byte[] bs = System.Text.Encoding.UTF8.GetBytes(data.ToJson()); Debug.Log(data.ToJson()); WWW www = new WWW(App.MgrConfig._Server + "AR/local", bs, headers); yield return(www); Debug.Log(www.text); string m_info = string.Empty; if (www.error != null) { m_info = www.error; Debug.Log(m_info); yield return(null); } if (www.isDone && www.error == null) { Debug.Log(www.text); m_info = www.text.ToString(); yield return(m_info); Debug.Log(m_info); JsonData jd = JsonMapper.ToObject(m_info); if (!jd["msg"].ToString().Equals("识别成功")) { Debug.Log("密码错误"); MobileFunction.DebugByAndroid("密码错误"); errorHandle(); yield break; } //Debug.Log (jd.ToString ()); string s = jd["data"]["timesImgSrc"].ToString(); string id = jd["data"]["id"].ToString(); s = App.MgrDownload.DownloadLocalARImg(s); VideoTargetDate _data = new VideoTargetDate(pwd, "", id, s); jd = jd["data"]["timeLineVideoList"]; for (int i = 0; i < jd.Count; i++) { VideoTargetCell cell = new VideoTargetCell( jd[i]["createDate"].ToString(), jd[i]["user"]["nickName"].ToString(), jd[i]["timeVideoSrc"].ToString(), jd[i]["user"]["userLogo"].ToString(), jd[i]["user"]["id"].ToString(), jd[i]["user"]["isFriend"].ValueAsBoolean(), jd[i]["isVertical"].ToString() ); _data.videoList.Add(cell); } Debug.Log(_data.videoList.Count); try { MobileFunction.DebugByAndroid("视频数量: " + _data.videoList.Count); } catch (Exception ex) { } yield return(new WaitForSeconds(1f)); if (handle != null) { handle(_data); } } }
//获取该target下的所有用户及视频信息 //POST /videos/cloud/targetId/{targetId}/memberCode/{memberCode} 2018-01-22-用户查看云识别时光轴 IEnumerator LoadImageTarget(ImageTarget target, System.Action <ImageTarget, VideoTargetDate> handle) { /*自动获取手机的信息 * System.Collections.Generic.Dictionary<string, string> headers = new System.Collections.Generic.Dictionary<string, string>(); * * headers.Add("Content-Type", "application/json"); * * * JsonData data = new JsonData(); * data["phone"] = "13816848999"; * data["targetId"] = "920df90c-dbb4-41bf-ab70-b2bc14c189c1"; * data["token"] = ""; * byte[] bs = System.Text.UTF8Encoding.UTF8.GetBytes(data.ToJson()); * * //WWW www = new WWW("http://106.14.60.213:8080/business/AR/cloud", bs, headers); * * //headers.Add("token", App.MgrConfig._token); */ WWWForm wwwForm = new WWWForm(); wwwForm.AddField("phone", App.MgrConfig._phone); wwwForm.AddField("targetId", target.Uid); wwwForm.AddField("token", ""); byte[] rawData = wwwForm.data; WWW www = new WWW(App.MgrConfig._Server + "AR/cloud", wwwForm); /* * Dictionary<string, string> headers = new Dictionary<string, string>(); * headers.Add("Content-Type", "application/json"); * JsonData jsonData = new JsonData(); * jsonData["phone"] = App.MgrConfig._phone; * jsonData["targetId"] = target.Uid; * Debug.Log(jsonData.ToJson()); * //byte[] bs = System.Text.UTF8Encoding.UTF8.GetBytes(data.ToJson()); * byte[] bs = System.Text.Encoding.UTF8.GetBytes(jsonData.ToJson()); * * WWW www = new WWW(App.MgrConfig._Server +"AR/cloud",bs,headers); */ yield return(www); string m_info = string.Empty; if (www.error != null) { m_info = www.error; yield return(null); } if (www.isDone && www.error == null) { m_info = www.text.ToString(); yield return(m_info); Debug.Log(m_info); JsonData jd = JsonMapper.ToObject(m_info); string id = jd["data"]["id"].ToString(); jd = jd["data"]["timeLineVideoList"]; if (jd == null) { Destroy(GameObject.Find(target.Uid)); yield break; } //Debug.Log (jd.ToString ()); byte[] bytes = Convert.FromBase64String(target.MetaData); string s = System.Text.Encoding.GetEncoding("utf-8").GetString(bytes); VideoTargetDate data = new VideoTargetDate(target.Uid, s, id, ""); for (int i = 0; i < jd.Count; i++) { VideoTargetCell cell = new VideoTargetCell( jd [i] ["createDate"].ToString(), jd [i] ["user"]["nickName"].ToString(), jd [i] ["timeVideoSrc"].ToString(), jd [i] ["user"]["userLogo"].ToString(), jd [i] ["user"]["id"].ToString(), jd [i] ["user"]["isFriend"].ValueAsBoolean(), jd[i]["isVertical"].ToString()); data.videoList.Add(cell); } handle(target, data); } }