El inglés se ha convertido gradualmente en un idioma global y el entusiasmo de la gente moderna por aprender inglés ha aumentado, por lo que los repetidores de inglés son muy populares. Sin embargo, no importa cuán potente sea el repetidor, hay un defecto obvio: el tiempo de repetición fijo. Si el tiempo de relectura es demasiado corto, entonces no hay nada que pueda hacer cuando se encuentre con oraciones largas; si el tiempo de relectura es muy largo, inevitablemente tendrá que releer algunas partes redundantes y avanzar rápidamente (hoy en día algunas máquinas de relectura de 200 segundos lo tienen); una función de avance rápido) ), ¡que es tan problemática como avanzar rápidamente la cinta! Por lo tanto, el autor quiere utilizar el potente control de reproducción multimedia de Delphi para desarrollar un repetidor de software. ¡La mayor ventaja del repetidor de software es que puedes repetirlo libremente independientemente de la longitud de la frase! Absolutamente no es necesario rebobinar o avanzar rápidamente. No sólo eso, el repetidor de software también tiene una función de lectura aleatoria, que es difícil de lograr con los repetidores normales.
Preparación
El control de reproducción multimedia de Delphi puede reproducir varios archivos de sonido. Podemos grabar los materiales de aprendizaje en la computadora según nuestras propias preferencias y guardarlos en un formato adecuado. Generalmente, se puede guardar como archivo wave o mp3.
Desarrollo de repetidor
El repetidor de software desarrollado utiliza principalmente el control de reproducción multimedia TMediaplayer de Delphi. Este control está en la página de control del sistema (sistema).
Primero crea una aplicación. Establezca el BorderStyle del formulario principal en BsDialog para deshabilitar la ampliación y reducción del formulario. Establezca KeyPReview en True para permitir que el formulario principal maneje los eventos del teclado.
Coloque controles en el formulario principal:
en:
El reproductor multimedia es el control clave del programa y se utiliza para reproducir sonidos.
TrackBar se utiliza para indicar el progreso de la reproducción actual.
El TlistBox (SectionList) de la izquierda se utiliza para almacenar el nombre del archivo de sonido que se reproducirá (materiales de aprendizaje).
Los dos TlistBoxes (StartList, StopList) de la derecha se utilizan para registrar las oraciones repetidas.
Los botones 'Agregar' y 'Eliminar' se utilizan para mantener los materiales de aprendizaje.
TrackBar1 se utiliza para mostrar el proceso de reproducción.
Timer1 se utiliza para mostrar dinámicamente el progreso de la reproducción.
OpenDialog1 se utiliza para seleccionar archivos para reproducir.
Implementación de la función de repetición:
① Configure dos números enteros (StartPos, SstopPos) en el programa para registrar los puntos de inicio y finalización de la reproducción, y configure StopPos en -1 durante la inicialización.
② Registre el valor inicial cada vez que se reproduce: StartPos := Mediaplayer1.Position;
③ En el programa, use la barra espaciadora para controlar la repetición y la tecla Enter para continuar la reproducción. Primero, establezca KeyPreview del formulario principal en True para que el formulario principal pueda interceptar mensajes clave. Luego, sobrecargue el método OnKeyDown. El código es el siguiente:
Implementación de la función de lectura gratuita:
Dado que los puntos inicial y final de todas las oraciones repetidas se registran durante la relectura, se puede releer cualquier oración. Cuando el usuario hace doble clic en una línea de 'Años pasados' con el mouse, puede cambiar directamente a la reproducción de esa oración. El código es el siguiente:
procedimiento TRepeaterForm.ListDblClick(Remitente: TObject);
comenzar
SID := (Remitente como TListBox).ItemIndex //Obtener el índice de la fila actual
SID StopList.ItemIndex := SID //Establece la lista de puntos finales en
SID StartList.ItemIndex := SID //Establece la lista inicial en
SID StartPos := StrToInt(StartList.Items[SID]);//Obtener la posición inicial
StopPos := StrToInt(StopList.Items[SID]);//Obtener la posición final
Mediaplayer1.StoP; //Detener la reproducción actual
Mediaplayer1.StartPos := StartPos //Establece un nuevo rango de reproducción
Mediaplayer1.EndPos := StopPos;
Mediaplayer1.Play; //Reproduce el sonido en el rango especificado
fin;
Adición de materiales de aprendizaje:
Haga clic en el botón Agregar para agregar materiales de aprendizaje. Cabe señalar que se debe recuperar la lista original antes de agregar nuevos archivos para evitar la duplicación. El código es el siguiente:
procedimiento TRepeaterForm.AddBtnClick (Remitente: TObject);
var fn: cadena;
comenzar
si OpenDialog1.Execute entonces
comenzar
fn := OpenDialog1.FileName;
si SecciónList.Items.IndexOf(fn)<0 entonces //Recuperar el archivo primero, si no existe SecciónList.Items.Add(fn);
fin;
fin;
Selección de materiales de estudio:
Se logra sobrecargando el método OnClick. Primero obtenga el índice al hacer clic y luego obtenga el nombre del archivo a través de Elementos [índice]. Asigne el nombre del archivo a la propiedad Nombre de archivo del Mediaplayer y luego llame al método Open. (código omitido)
Además, el archivo del material de aprendizaje debe abrirse cuando se inicializa el programa; el material de aprendizaje debe guardarse cuando se cierra el programa. Estas funciones se implementan a través de TlistBox.Items.LoadFromFile y TlistBox.Items.SaveToFile (código omitido).
El programa pasó la depuración en el entorno chino Windows98+Delphi5.0. Todo el código fuente se puede obtener enviando un correo electrónico al autor.