//Log Dir http://docs.unity3d.com/Manual/LogFiles.html // requisiçao http get no unity // vlibras.lavid.ufpb.br:5000/glosa?texto=CASA%LAVID%123 using UnityEngine; using System.Collections; using System.Collections.Generic; using System; using System.IO; using System.Text; using System.Runtime.InteropServices; using UnityEngine.UI; using System.Threading; public class PlayerManager : GenericPlayerManager { #if UNITY_IOS private const string BASE_URL = "http://150.165.205.9/anims/IOS/"; #else private const string BASE_URL = "http://150.165.205.9/anims/ANDROID/"; #endif private const string SERVER_URL = "http://vlibras.lavid.ufpb.br/glosa?texto="; protected VoiceRecognition voiceRecognizer; public InputField translateScreenText; private int version = 1; private string[] randomAnimationNames = new string[] { "[RELAXAR]", "[BOCEJAR]", "[COCHILAR]", "[ESPREGUI_ADA]" }; public ScreenManager screenManager; private string dictWord = null; public override void Start() { base.setRandomAnimations(randomAnimationNames); base.Start(); // DEBUG: var onLoadPlayer = function(){} Application.ExternalCall("onLoadPlayer"); voiceRecognizer = new VoiceRecognition(); Screen.fullScreen = false; // Hide input text preview TouchScreenKeyboard.hideInput = true; } public void playDict(string word) { Debug.Log("Requesting dictionary: " + word); this.dictWord = word; base.gloss = word; base.playNow(word); this.screenManager.hideScreen(); this.screenManager.setPauseMenuState(false); } public void playTranslate() { stopTranslation(); StartCoroutine("translate", translateScreenText.text); this.screenManager.setPauseMenuState(false); } public void stopTranslation() { StopCoroutine("translate"); this.randomAnimations.unlockFor("translate"); } public void catchTranslationError() { this.randomAnimations.unlockFor("translate"); base.repeat(); } protected override WWW loadAssetBundle(string aniName) { Debug.Log("Requesting bundle: " + aniName); return WWW.LoadFromCacheOrDownload(BASE_URL + aniName, version); } private System.Object LOCKER_STATE = new System.Object(); protected override void onPlayingStateChange() { lock (LOCKER_STATE) { this.screenManager.changeStates(base.isPlaying(), base.isPaused(), ! String.IsNullOrEmpty(base.gloss)); } } protected override void onConnectionError(string gloss, string word) { if (gloss.Equals(this.dictWord)) { base.stopAll(); this.screenManager.showConnectionErrorDialog(); } } // Called from microphone icon at main interface public void callVoiceRecognizer() { Debug.Log("Requesting voice recognizer"); string gloss = voiceRecognizer.callRecognition(); this.translateScreenText.text = gloss; Debug.Log("Voice recognizer answer: " + gloss); this.screenManager.switchScreen("translate"); } private System.Object LOCKER_TRANSLATE = new System.Object(); private IEnumerator translate(string gloss) { lock (this.LOCKER_TRANSLATE) { Debug.Log("Requesting tranlator: " + gloss); base.randomAnimations.lockFor("translate"); this.screenManager.setLoadingSnippetState(true); WWW glossRequest = new WWW(SERVER_URL + WWW.EscapeURL(gloss)); if (glossRequest != null) { yield return glossRequest.isDone; if (glossRequest.error == null) { yield return glossRequest; if ( ! String.IsNullOrEmpty(glossRequest.text)) { Debug.Log("Translator answer: " + glossRequest.text); base.gloss = glossRequest.text; base.playNow(glossRequest.text); this.screenManager.setLoadingSnippetState(false); base.randomAnimations.unlockFor("translate"); yield break; } else Debug.Log("Error at PlayerManager.translate: empty answer."); } else Debug.Log("Error at PlayerManager.translate: (WWW) glosaRequest: " + glossRequest.error); } else Debug.Log ("Error at PlayerManager.translate: (WWW) glosaRequest is NULL."); base.gloss = gloss.ToUpper(); this.screenManager.setLoadingSnippetState(false); this.screenManager.showConnectionErrorDialog(); //base.randomAnimations.unlockFor("translate"); } } }