private void seleccionarDisco(int numeroDisco) { if (this.listaArchivoAudio.Any(c => c.numero == numeroDisco)) { this.discoSeleccionado = this.listaArchivoAudio.Where(c => c.numero == numeroDisco).FirstOrDefault(); String cadena = $"El disco numero {discoSeleccionado.numero} se llama " + discoSeleccionado.nombre + ". Después del tono, para tocar el disco apriete play. Para seleccionar otro disco escriba el número del disco"; this.reproducirTextoComoSonido(cadena); } else { this.reproducirTextoComoSonido($"No se encontró ningún disco con el número {numeroDisco}. Después del tono, escriba el número de un disco"); } }
private void Form1_KeyUp(object sender, KeyEventArgs e) { try { if (this.esta_el_sistema_hablando == false) { if (this.ha_confirmado_el_usuario_que_escucha == false) // Si el usuario confirma que esta escuchando { this.ha_confirmado_el_usuario_que_escucha = true; this.iniciarCargaArchivosDeAudio(); // Carga los audios e informa al usuario sobre los discos que puede elegir return; } if (e.KeyCode == Keys.Escape) // Si se apreto escape if (palabra == "apagar") { if (this.iniciar_proceso_apagar_pc == false) { if (this.salidaSonido != null) { this.salidaSonido.Pause(); this.sonidoPausado = true; } this.iniciar_proceso_apagar_pc = true; this.reproducirTextoComoSonido("Después del tono, para apagar el computador apriete nuevamente la tecla escape. Para continuar usando el computador apriete cualquier otra tecla"); } else // Si se confirmo con la palabra apagar { SpeechSynthesizer vozApagar = new SpeechSynthesizer(); vozApagar.SelectVoice("Microsoft Helena Desktop"); vozApagar.Volume = 100; vozApagar.Rate = 0; vozApagar.SpeakCompleted += new EventHandler <SpeakCompletedEventArgs>(apagarComputador); vozApagar.SpeakAsync("El computador comenzará a apagarse a la cuenta de tres. Uno, dos, tres"); // this.reproducirTextoComoSonido("El computador comenzará a apagarse a la cuenta de tres. Uno, dos, tres"); // System.Diagnostics.Process.Start("shutdown", "/f /s /t 0"); } return; } this.iniciar_proceso_apagar_pc = false; // Anula algun posible intento previo de apagar el pc //if (this.existeDiscoSeleccionado == false && e.KeyCode != this.teclaPlay && this.numeroDiscoSeleccionado != "") if (this.salidaSonido == null && e.KeyCode != this.teclaPlay && this.numeroDiscoSeleccionado != "") { //int numero = Utilidades.convertirTeclaPulsadaEnNumero(e); int numero = int.Parse(this.numeroDiscoSeleccionado); // Este valor es definido en el metodo keyDown this.seleccionarDisco(numero); this.existeDiscoSeleccionado = true; this.numeroDiscoSeleccionado = ""; // Borra el numero para que no interfiera return; } if (e.KeyCode == this.teclaPlay && this.existeDiscoSeleccionado == true) // if (palabra == "play") { //this.reproducirTextoComoSonido("El disco se va a reproducir. Si desea detener el disco diga stop. Para salir de este disco diga exit"); //this.tocarSonido("C:/Users/josel/Downloads/Sonidos/probando.mp3"); this.tocarSonido(this.discoSeleccionado.ruta); this.sonidoPausado = false; } if (this.salidaSonido != null) { if (e.KeyCode != this.teclaPlay && e.KeyCode != this.teclaStop && e.KeyCode == Keys.Left && e.KeyCode == Keys.Right) { this.reproducirTextoComoSonido("Cuando se reproduce un disco solo se permiten las teclas play y stop"); } if (e.KeyCode == this.teclaStop) { if (this.sonidoPausado == false) // if (palabra == "stop") { this.salidaSonido.Pause(); this.sonidoPausado = true; this.reproducirTextoComoSonido("El disco se detuvo. Después del tono, para continuar escuchando apriete play. Para salir de este disco apriete nuevamente la tecla stop"); return; } if (this.sonidoPausado == true) { this.salidaSonido.Stop(); this.salidaSonido = null; this.existeDiscoSeleccionado = false; this.orientarUsuarioSobreDiscosDisponibles($"Usted ha salido del disco {this.discoSeleccionado.nombre}."); this.discoSeleccionado = null; } } } } } catch (Exception ex) { this.numeroDiscoSeleccionado = ""; // Borra el numero para que no interfiera string cadena = (ex is ArgumentException) ? ex.Message : "Se encontró un error"; this.reproducirTextoComoSonido(cadena); } }