Select Git revision
icmp-timestamp.c
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Micro.cs 4.72 KiB
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.IO;
using UnityEngine.Windows.Speech;
using System.Collections.Generic;
using System.Linq;
public class Micro : MonoBehaviour
{
private Animator animator;
private bool pulsado;
//private Escritor e = new Escritor();
private Altavoz altavoz;
private bool conectado = false;
private DinamicaComprension dc;
private DinamicaProduccion dp;
private string nombreDinamica = "";
Diccionario d = new Diccionario();
private bool guardarAudio = false;
AudioSource audioSource;
//private SavWav savwav;
private AudioClip audioClip;
private bool useMicro;
private string selectedDevice;
//Reconocedor
KeywordRecognizer keywordRecognizer;
Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();
//Create keywords for keyword recognizer
private void Start()
{
keywords.Add(dp.getTextoAGrabar(), () =>
{
FraseDichaBien();// action to be performed when this keyword is spoken
});
keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());
keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
keywordRecognizer.Start();
}
private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
System.Action keywordAction;
// if the keyword recognized is in our dictionary, call that Action.
if (keywords.TryGetValue(args.text, out keywordAction))
{
keywordAction.Invoke();
}
}
private void FraseDichaBien()
{
dp.DispararGrabacionCorrecta();
}
private void Update()
{
if (dc != null) nombreDinamica = dc.getNombreDinamica();
if (dp != null) nombreDinamica = dp.getNombreDinamica();
}
public bool getPulsado()
{ return pulsado;
}
public void setPulsado(bool estado)
{
pulsado = estado;
}
public void setDisponible(bool estado)
{
conectado = estado;
}
private void OnMouseDown()
{
altavoz.setReproducir(false);
altavoz.setConectado(false);
animator = GetComponent<Animator>();
animator.SetBool("MicroPulsado", true);
pulsado = true;
//UsandoMicro();
}
public void setConectado(bool estado)
{
animator = GetComponent<Animator>();
animator.SetBool("MicroConectado", estado);
}
public void setGrabarFalse()
{
animator = GetComponent<Animator>();
animator.SetBool("MicroPulsado", false);
animator.SetBool("MicroConectado", false);
pulsado = false;
altavoz.setReproducir(true);
altavoz.setConectado(true);
//NoUsarMicro();
}
public void NoUsarMicro()
{
//altavoz.setReproducir(true);
//altavoz.setConectado(true);
if(guardarAudio) Microphone.End(selectedDevice);
//var filePath = "./Gonzalo/Grabaciones/data.wav";
//SavWav.Save("filePath", audioSource);
//audioClip = audioSource.clip;
string fecha = DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss");
//var filepath = "./Gonzalo/Grabaciones/" + fecha + ".wav";
if(guardarAudio) SavWav.Save(audioClip);
Escritor.Instance.save(d.getDiccionario("Fin_Grabacion"), nombreDinamica);
}
public void UsandoMicro()
{
Escritor.Instance.save(d.getDiccionario("Comienzo_Grabacion"), nombreDinamica);
if (Microphone.devices.Length > 0)
{
print("Longitud: "+ Microphone.devices.Length);
guardarAudio = true;
selectedDevice = Microphone.devices[0].ToString();
//audioClip = Microphone.Start(selectedDevice, true, 10, AudioSettings.outputSampleRate);
audioClip = Microphone.Start(selectedDevice, true, 10, 10000);
}
else
{
guardarAudio = false;
}
}
public AudioClip getAudioClip()
{
return audioClip;
}
public void setAudioClip(AudioClip audioClip)
{
this.audioClip = audioClip;
}
public void setNombreDinamica(string nombre)
{
nombreDinamica = nombre;
}
/**public void setEscritor(Escritor e)
{
this.e = e;
}*/
public void setAltavoz(Altavoz altavoz)
{
this.altavoz = altavoz;
}
public Micro getMicro()
{
return this;
}
public void setDinamicaComprension(DinamicaComprension dc)
{
this.dc = dc;
}
public void setDinamicaProduccion(DinamicaProduccion dp)
{
this.dp = dp;
}
}