Englisch hat sich nach und nach zu einer Weltsprache entwickelt und die Begeisterung der modernen Menschen für das Erlernen der englischen Sprache ist gestiegen. Daher erfreuen sich Englischwiederholer großer Beliebtheit. Doch egal wie leistungsstark der Repeater ist, es gibt einen offensichtlichen Fehler – die feste Wiederholungszeit. Wenn die Zeit zum erneuten Lesen zu kurz ist, können Sie bei langen Sätzen nichts tun; wenn die Zeit zum erneuten Lesen sehr lang ist, müssen Sie zwangsläufig einige überflüssige Teile erneut lesen und vorspulen (heutzutage ist dies bei manchen Geräten zum erneuten Lesen von 200 Sekunden der Fall). eine Schnellvorlauffunktion), die genauso mühsam ist wie das schnelle Vorspulen des Bandes! Daher möchte der Autor die leistungsstarke Medienwiedergabesteuerung von Delphi nutzen, um einen Software-Repeater zu entwickeln. Der größte Vorteil des Software-Repeaters besteht darin, dass Sie ihn unabhängig von der Länge des Satzes beliebig wiederholen können! Es ist absolut nicht nötig, zurückzuspulen oder vorzuspulen. Darüber hinaus verfügt der Software-Repeater auch über eine Zufallslesefunktion, die mit herkömmlichen Repeatern nur schwer zu erreichen ist.
Vorbereitung
Die Medienwiedergabesteuerung von Delphi kann verschiedene Sounddateien abspielen. Wir können die Lernmaterialien nach unseren eigenen Vorlieben im Computer aufzeichnen und in einem geeigneten Format speichern. Im Allgemeinen kann es als Wave-Datei oder MP3-Datei gespeichert werden.
Entwicklung von Repeatern
Der entwickelte Software-Repeater nutzt hauptsächlich Delphis Medienwiedergabesteuerung TMediaplayer. Dieses Steuerelement befindet sich auf der Seite Systemsteuerung (System).
Erstellen Sie zunächst eine Anwendung. Legen Sie den BorderStyle des Hauptformulars auf BsDialog fest, um die Vergrößerung und Verkleinerung des Formulars zu deaktivieren. Setzen Sie KeyPReview auf True, damit das Hauptformular Tastaturereignisse verarbeiten kann.
Platzieren Sie Steuerelemente im Hauptformular:
In:
Der Mediaplayer ist die zentrale Steuerung des Programms und dient der Wiedergabe von Sounds.
TrackBar wird verwendet, um den aktuellen Wiedergabefortschritt anzuzeigen.
Die TlistBox (SectionList) auf der linken Seite dient zur Speicherung des Namens der abzuspielenden Sounddatei (Lernmaterialien).
Die beiden TlistBoxen (StartList, StopList) auf der rechten Seite dienen zur Aufzeichnung der wiederholten Sätze.
Die Schaltflächen „Hinzufügen“ und „Löschen“ dienen der Pflege von Lernmaterialien.
TrackBar1 dient zur Anzeige des Wiedergabevorgangs.
Timer1 wird verwendet, um den Wiedergabefortschritt dynamisch anzuzeigen.
OpenDialog1 wird verwendet, um die abzuspielenden Dateien auszuwählen.
Implementierung der Wiederholungsfunktion:
① Legen Sie im Programm zwei Ganzzahlen (StartPos, SstopPos) fest, um den Start- und Endpunkt der Wiedergabe aufzuzeichnen, und setzen Sie StopPos während der Initialisierung auf -1.
② Notieren Sie den Startwert bei jeder Wiedergabe: StartPos := Mediaplayer1.Position;
③ Verwenden Sie im Programm die Leertaste, um die Wiederholung zu steuern, und die Eingabetaste, um die Wiedergabe fortzusetzen. Setzen Sie zunächst die KeyPreview des Hauptformulars auf True, damit das Hauptformular Schlüsselnachrichten abfangen kann. Überladen Sie dann die OnKeyDown-Methode. Der Code lautet wie folgt:
Implementierung der kostenlosen Lesefunktion:
Da beim erneuten Lesen die Anfangs- und Endpunkte aller wiederholten Sätze aufgezeichnet werden, kann jeder Satz noch einmal gelesen werden. Wenn der Benutzer mit der Maus auf eine Zeile in „Vergangene Jahre“ doppelklickt, kann er direkt zur Wiedergabe dieses Satzes wechseln. Der Code lautet wie folgt:
procedure TRepeaterForm.ListDblClick(Sender: TObject);
beginnen
SID := (Sender as TListBox).ItemIndex; //Den Index der aktuellen Zeile abrufen
SID StopList.ItemIndex := SID; //Setzen Sie die Endpunktliste auf
SID StartList.ItemIndex := SID; //Setze die Startliste auf
SID StartPos := StrToInt(StartList.Items[SID]);//Erhalte die Startposition
StopPos := StrToInt(StopList.Items[SID]);//Endposition abrufen
Mediaplayer1.StoP; //Stoppt die aktuelle Wiedergabe
Mediaplayer1.StartPos := StartPos; //Einen neuen Wiedergabebereich festlegen
Mediaplayer1.EndPos := StopPos;
Mediaplayer1.Play; //Spielt den Ton im angegebenen Bereich ab
Ende;
Ergänzung von Lernmaterialien:
Klicken Sie auf die Schaltfläche „Hinzufügen“, um Lernmaterialien hinzuzufügen. Es ist zu beachten, dass die ursprüngliche Liste vor dem Hinzufügen neuer Dateien abgerufen werden sollte, um Duplikate zu vermeiden. Der Code lautet wie folgt:
procedure TRepeaterForm.AddBtnClick(Sender: TObject);
var fn: string;
beginnen
wenn OpenDialog1.Execute dann
beginnen
fn := OpenDialog1.FileName;
if SectionList.Items.IndexOf(fn)<0 then //Zuerst die Datei abrufen, wenn sie nicht existiert SectionList.Items.Add(fn); //Zur Liste hinzufügen
Ende;
Ende;
Auswahl an Lernmaterialien:
Wird durch Überladen der OnClick-Methode erreicht. Rufen Sie zuerst den Index ab, wenn Sie darauf klicken, und rufen Sie dann den Dateinamen über Elemente [Index] ab. Weisen Sie den Dateinamen der Filename-Eigenschaft von Mediaplayer zu und rufen Sie dann die Open-Methode auf. (Code weggelassen)
Darüber hinaus sollte die Lernmaterialdatei beim Initialisieren des Programms geöffnet werden; das Lernmaterial sollte beim Beenden des Programms gespeichert werden. Diese Funktionen werden über TlistBox.Items.LoadFromFile und TlistBox.Items.SaveToFile implementiert (Code weggelassen).
Das Programm hat das Debuggen in der chinesischen Windows98+Delphi5.0-Umgebung bestanden. Der gesamte Quellcode kann per E-Mail beim Autor angefordert werden.